
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
07.11.2014, 12:11:55
|
|||
|---|---|---|---|
Можно ли как то сделать пинг процесса ? Определить, что он завис. |
|||
|
#18+
Можно только теорию или список функция, или готовое решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.11.2014, 12:58:47
|
|||
|---|---|---|---|
|
|||
Можно ли как то сделать пинг процесса ? Определить, что он завис. |
|||
|
#18+
Windows для этого использует SendMessageTimeout(). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.11.2014, 13:25:14
|
|||
|---|---|---|---|
Можно ли как то сделать пинг процесса ? Определить, что он завис. |
|||
|
#18+
Dimitry SibiryakovWindows для этого использует SendMessageTimeout(). а как hwnd получить по id процесса ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.11.2014, 13:32:58
|
|||
|---|---|---|---|
Можно ли как то сделать пинг процесса ? Определить, что он завис. |
|||
|
#18+
gera3323Dimitry SibiryakovWindows для этого использует SendMessageTimeout(). а как hwnd получить по id процесса ? Например, FindWindow. Только учти, что далеко не у всех процессов есть окна. Так что таким образом можно определить только работоспособность оконных приложений. Работоспособность абстрактного процесса нельза вообще никак оценить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.11.2014, 13:35:33
|
|||
|---|---|---|---|
|
|||
Можно ли как то сделать пинг процесса ? Определить, что он завис. |
|||
|
#18+
gera3323а как hwnd получить по id процесса ? EnumWindows() + GetWindowProcessThreadId(). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.11.2014, 17:07:51
|
|||
|---|---|---|---|
Можно ли как то сделать пинг процесса ? Определить, что он завис. |
|||
|
#18+
gera3323, имеется в виду процесс-приложение в Win32 (Wndproc) циклом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.11.2014, 19:06:47
|
|||
|---|---|---|---|
Можно ли как то сделать пинг процесса ? Определить, что он завис. |
|||
|
#18+
gera3323Можно только теорию или список функция, или готовое решение.В общем случае: нельзя. Можно "в главном цикле" процесса предусмотреть функцию проверки "а не пингуют ли меня?" и отвечать соответственно. Можно сделать функцию которая периодически будет кидать наружу что-либо. Либо в лог писать "я еще живой", либо кидать udp пакет на предопределенный порт и если там есть монитор, то он будет подхватывать эту посылку и сообщать юзеру что главный процесс еще не завис. Главный секрет в том чтобы процесс не замыкался в себе. Без подобной подготовки определить что процесс завис можно пожалуй только опосредованно - если в течении некоего таймаута процесс не обращался ни к одной функции ОС, то можно предположить что что-то там произошло нехорошее. Но в то-же время процесс может и просто сидеть считать что-нибудь большое типа перемножения матриц... SendMessageTimeout() это как раз пример "а не пингуют ли меня?". Эта функция кладет в очередь процесса сообщение и ждет пока процесс прочитает это сообщение. Если прочитал, значит главный цикл процесса (который в WndProc) еще работает. Но и соответственно если у процесса нету WndProc - эта функция становится бесполезной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2019242]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 201ms |
| total: | 352ms |

| 0 / 0 |
