Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - C# - Как отследить состояние процесса

Ответить
Настройки темы
C/C++ - C# - Как отследить состояние процесса

Старожил


Сообщения: 191
Благодарности: 5


Конфигурация

Профиль | Отправить PM | Цитировать


Нужно проверить, запущен ли процесс и узнать его состояние - отвечает/не отвечает. Как реализовать такое на C# ?

-------
Ясность - одна из форм полного тумана.


Отправлено: 00:03, 15-02-2010

 

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Процесс сторонний или запущенный из под программы?
Почитайте это: http://www.gotdotnet.ru/forums/15/114038/538210/

В частности, вас должен заинтересовать вот такой код:

Код: Выделить весь код
private void goToProcess() 
{ 
Process[] processList; 
processList = Process.GetProcessesByName("cmd"); 
foreach (Process myProcess in processList) 
{ 
progressBar1.Style = ProgressBarStyle.Marquee; //Вместо этой строки можно сделать проверку свойств myProcess.
} 
}
Для объявления Process Надо добавить директиву #using System.Diagnostics

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 02:24, 15-02-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 191
Благодарности: 5

Профиль | Отправить PM | Цитировать


Процесс сторонний. Причем возможно, что имя процесса, который нужно отслеживать, будет совпадать с именем другого процесса. Различаются они по описанию. Можно ли идентифицировать нужный процесс по имени и описанию?

-------
Ясность - одна из форм полного тумана.


Отправлено: 08:21, 15-02-2010 | #3


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Цитата Delirium:
Process.GetProcessesByName("cmd"); »
Это уже идентификация процесса командной строки (cmd.exe). Не совсем понятно, что имеется в виду под описанием?

Если имеется в виду описание свойств(правой кнопкой на файле - свойства), то можно почитать здесь:
http://www.gotdotnet.ru/forums/2/76926/366479/
и здесь: http://otvety.google.ru/otvety/threa...768343d0014435

Путь до имени файла можно выковырять через вышеуказанный код и свойства MyProcess.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 09:14, 15-02-2010 | #4


Старожил


Сообщения: 191
Благодарности: 5

Профиль | Отправить PM | Цитировать


Цитата Delirium:
Не совсем понятно, что имеется в виду под описанием? »
В диспетчере задач имеется колонка "Описание". По ней и нужно идентифицировать процесс.
Хотя есть и альтернативный вариант - идентифицировать процесс по пути к исполняемому файлу. Это возможно?
-----------
Попробую более очевидно описать задачу.
Есть 2 программы, размещенные в разных каталогах. Имена одинаковые, версии и описания разные.
К примеру,

C:\bin\app.exe //Описание: ConApp1
C:\bin2\app.exe //Описание: ConApp2

Обе программы запущены. C:\bin2\app.exe зависает (или перестает отвечать, как пишет Windows в заголовке окна). В этот момент нужно его завершить (C:\bin2\app.exe), не затронув первую программу (C:\bin\app.exe).

-------
Ясность - одна из форм полного тумана.


Последний раз редактировалось Flammable, 15-02-2010 в 21:54.


Отправлено: 18:48, 15-02-2010 | #5


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Цитата Flammable:
Хотя есть и альтернативный вариант - идентифицировать процесс по пути к исполняемому файлу. Это возможно? »
http://www.cyberforum.ru/csharp-net/thread4966.html - здесь все описано подробно.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:39, 16-02-2010 | #6


Старожил


Сообщения: 191
Благодарности: 5

Профиль | Отправить PM | Цитировать


Delirium, спасибо, попробую.

-------
Ясность - одна из форм полного тумана.


Отправлено: 08:04, 16-02-2010 | #7


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
private void goToProcess() 
{ 
string ProcessName = "cmd";
SomeProcess = Process.GetProcessesByName(ProcessName); 
if (SomeProcess.Length == 0){Console.WriteLine("{0} is offline", ProcessName);}else{Console.WriteLine("{0} is online", ProcessName);}
}
Попробуйте вот так.

Отправлено: 11:55, 31-12-2010 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - C# - Как отследить состояние процесса

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как отследить появление сообщения в разных ОС Str_ani_ck AutoIt 10 27-07-2009 18:39
Как отследить изменения на сайте? Dupel Хочу все знать 9 17-02-2008 14:29
Как отследить программу, которая тормозит систему? wale Хочу все знать 4 05-06-2007 19:37
как можно отследить временые папки Positiv Автоматическая установка приложений 1 02-06-2006 23:27
Как отследить процесс завершения приложения fossil Программирование и базы данных 8 27-04-2004 19:07




 
Переход