Как запустить программу на выполнения без установки таймаута выполнения?

Evgeny

Client
Регистрация
01.03.2012
Сообщения
127
Благодарностей
12
Баллы
18
Мне нужно запустить putty.exe вот с такой командой
C:\Putty\putty.exe -load "server_ftp"
И мне нужно, чтобы это окно висело без установки таймаутов
В данный момент, все работает если устанавливаешь таймаут выполнения, и окно висит столько секунд, сколько выставишь, Но мне надо, чтобы окно не исчезало и продолжало работать дальше...
А так получается следующий шаг не хочет выполняться и ждет все 6 часов:-)
Как так сделать???
 
Последнее редактирование:

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 537
Благодарностей
993
Баллы
113
У меня через батник или cmd запускается @start "R&Q" "R&Q.exe" :-)
 

darkdiver

Administrator
Команда форума
Регистрация
13.01.2009
Сообщения
2 284
Благодарностей
2 728
Баллы
113
C#:
// в переменной path лежит C:\Putty\putty.exe
var path = project.Variables["path"].Value;
System.Diagnostics.ProcessStartInfo p = new System.Diagnostics.ProcessStartInfo();
p.FileName = path;
p.Arguments = "-load \"server_ftp\"";
var process = System.Diagnostics.Process.Start(p);
// возвращаем Id запущенного процесса
return process.Id;
 

Evgeny

Client
Регистрация
01.03.2012
Сообщения
127
Благодарностей
12
Баллы
18
C#:
// в переменной path лежит C:\Putty\putty.exe
var path = project.Variables["path"].Value;
System.Diagnostics.ProcessStartInfo p = new System.Diagnostics.ProcessStartInfo();
p.FileName = path;
p.Arguments = "-load \"server_ftp\"";
var process = System.Diagnostics.Process.Start(p);
// возвращаем Id запущенного процесса
return process.Id;
Я пробовал этот вариант, а вот -load \"server_ftp\" косые слешы не ставил и поэтому не рботало:-)
 

Evgeny

Client
Регистрация
01.03.2012
Сообщения
127
Благодарностей
12
Баллы
18
А если у меня будет 10 окон открыто, как мне убить процесс именно нужного окна?, чтобы не прибить все сразу
вот тут приводили пример, но он убивает все окна
C#:
foreach (var process in System.Diagnostics.Process.GetProcessesByName("notepad"))
    process.Kill();
Можно убить процесс по названию окна?
 
Последнее редактирование модератором:

darkdiver

Administrator
Команда форума
Регистрация
13.01.2009
Сообщения
2 284
Благодарностей
2 728
Баллы
113
мой C# макрос возвращает id процесса, надо получить по нему процесс и убить его, как-то так:
C#:
System.Diagnostics.Process.GetProcessById(Convert.ToInt32(project.Variables["processId"].Value)).Kill();
 
Последнее редактирование:
  • Спасибо
Реакции: Evgeny

Evgeny

Client
Регистрация
01.03.2012
Сообщения
127
Благодарностей
12
Баллы
18
мой C# макрос возвращает id процесса, надо получить по нему процесс и убить его, как-то так:
тоесть в начале проекта я ставлю открыть окно, делаю свои дела, счетчик у меня считает кол-во сделанных дел, и когда счетчик подошел к концу, в конце проекта выполняется этот код и убивает именно это окно?
У меня же еще десяток точно таких же окон будет открыто
 

darkdiver

Administrator
Команда форума
Регистрация
13.01.2009
Сообщения
2 284
Благодарностей
2 728
Баллы
113
каждый процесс имеет свой id, без разницы сколько ещё таких окон открыто, id уникален в рамках системы и присваивается при запуске процесса, убьется тот процесс который вы запустили.
 
  • Спасибо
Реакции: Evgeny

Evgeny

Client
Регистрация
01.03.2012
Сообщения
127
Благодарностей
12
Баллы
18
А можно мне вместо \"server_ftp\" поставить переменную? У меня там разные команды выполняются, хочу их вывести в отдельный файл и брать строку с удалением

C#:
// в переменной path лежит C:\Putty\putty.exe
var path = project.Variables["path"].Value;
System.Diagnostics.ProcessStartInfo p = new System.Diagnostics.ProcessStartInfo();
p.FileName = path;
p.Arguments = "-load \"server_ftp\"";
var process = System.Diagnostics.Process.Start(p);
// возвращаем Id запущенного процесса
return process.Id;
 

darkdiver

Administrator
Команда форума
Регистрация
13.01.2009
Сообщения
2 284
Благодарностей
2 728
Баллы
113
C#:
// в переменной path лежит C:\Putty\putty.exe
var path = project.Variables["path"].Value;
System.Diagnostics.ProcessStartInfo p = new System.Diagnostics.ProcessStartInfo();
p.FileName = path;
p.Arguments = project.Variables["args"].Value;
var process = System.Diagnostics.Process.Start(p);
// возвращаем Id запущенного процесса
return process.Id;
в переменной args должно лежать -load "server_ftp" (без слешей), ну или то что вам нужно
 
  • Спасибо
Реакции: Evgeny

Evgeny

Client
Регистрация
01.03.2012
Сообщения
127
Благодарностей
12
Баллы
18
мой C# макрос возвращает id процесса, надо получить по нему процесс и убить его, как-то так:
C#:
System.Diagnostics.Process.GetProcessesById(Convert.ToInt32(project.Variables["processId"].Value)).Kill();
У меня вот такая ошибка вылетает
Код:
""System.Diagnostics.Process" не содержит определение для "GetProcessesById"". [Строка: 1; Cтолбец: 28]
 

iDnx

Client
Регистрация
06.06.2013
Сообщения
129
Благодарностей
104
Баллы
43
У меня вот такая ошибка вылетает
Код:
""System.Diagnostics.Process" не содержит определение для "GetProcessesById"". [Строка: 1; Cтолбец: 28]
Код:
var processId = Convert.ToInt32(project.Variables["processId"].Value);
var process = System.Diagnostics.Process.GetProcessById(processId);
process.Kill();
 
  • Спасибо
Реакции: Evgeny

darkdiver

Administrator
Команда форума
Регистрация
13.01.2009
Сообщения
2 284
Благодарностей
2 728
Баллы
113
потому что у вас написано GetProcessesById, а надо GetProcessById
мой косяк, исправил в коде.
 
  • Спасибо
Реакции: Evgeny
Регистрация
12.07.2014
Сообщения
916
Благодарностей
371
Баллы
63
Что-то или я напутал, или код не работает
процессы.png

Не закрывается процесс и выжирает постепенно всю память.

консоль.png


З.Ы.

Это помогло
foreach (var process in System.Diagnostics.Process.GetProcessesByName("ConEmuC64"))
process.Kill();
 
Последнее редактирование:

phillplacebo

Client
Регистрация
04.02.2020
Сообщения
25
Благодарностей
1
Баллы
3
Здравствуйте. Подскажите пожалуйста, как запустить процесс с параметрами и убить через определённое время (3600 сек выполения, допустим)? Гугл не сломался, но буду весьма благодарен за вашу помощь!
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)