Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.08;
Скачать: CL | DM;

Вниз

"повисшее" приложение   Найти похожие ветки 

 
MetalFan ©   (2004-06-25 14:16) [0]

как узнать, что процесс "висит"?
заранее thnx


 
Тимохов ©   (2004-06-25 14:16) [1]

что есть "висит"?


 
MetalFan ©   (2004-06-25 14:22) [2]

ну не отвечат ни на что...
значит мысль такая:
есть стороннее приложение. оно в некоторых случаях выдает ошибку и его главное окно исчезает. но в процессах оно остается. как можно определить, что оное накрылось(повисло)?


 
clickmaker ©   (2004-06-25 14:26) [3]

SendMessageTimeout, SMTO_ABORTIFHUNG


 
MetalFan ©   (2004-06-25 14:29) [4]


> clickmaker ©   (25.06.04 14:26) [3]

big thnx!
а как по processID узнать хэндл окна приложения? а то кому message то слать?


 
Тимохов ©   (2004-06-25 14:41) [5]

handle окна можно узанть с помощью findwindow (например)


 
TUser ©   (2004-06-25 14:43) [6]

Можно через FindWindowEx найти окно нужного приложения и черех GetWindowThreadProcessId проверить, что это окно именно того процесса, который тебя интересует. Дальше - Repeat.. Until.

PS. Наверное и попроще что-нибудь етсь.


 
diMAN   (2004-06-25 15:03) [7]

Вот, посмотри:

Как определить зависло приложение или нет?
http://www.3dnews.ru/software/win_trick02/?template=print.htm


 
MetalFan ©   (2004-06-25 15:22) [8]


> diMAN   (25.06.04 15:03) [7]

Big Thnx!
то, что надо! попадалось ведь это! но всего не упомнишь!


 
Тимохов ©   (2004-06-25 15:38) [9]

а надо ли связываться с недокументированностью?


 
MetalFan ©   (2004-06-25 17:21) [10]


> Можно через FindWindowEx найти окно нужного приложения и
> черех GetWindowThreadProcessId проверить, что это окно именно
> того процесса, который тебя интересует. Дальше - Repeat..
> Until.

не работает(

function DoFindICQWindow: THandle;
 var
   lHndl: THandle;
 function EnumWindowProc(whandle: HWND): boolean;
 var
  lPID: DWORD;
 begin
   GetWindowThreadProcessId(whandle, lPID);
   result := (lPID <> GProcessID);
   if not result then
     lHndl := whandle;
 end;
begin
 lHndl := 0;
 GProcessID := DoFindProcess;
 if GProcessID <> 0 then
   EnumWindows(@EnumWindowProc, 0);
 result := lHndl;
end;

GProcessID - правильный PID приложения, а в EnumWindowProc lPID всегда какой-то здоровый(((


 
MetalFan ©   (2004-06-25 17:46) [11]

не смотрите предыдущий мой бред! все, я разобрался) всем thnx


 
DeadMeat ©   (2004-06-25 17:49) [12]

Я не смотрел... :))

---
...Death Is Only The Begining...


 
Игорь Шевченко ©   (2004-06-25 20:17) [13]

для XP и выше: IsHungAppWindow



Страницы: 1 вся ветка

Текущий архив: 2004.08.08;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.064 c
1-1090348217
Магнит
2004-07-20 22:30
2004.08.08
Управление окнами в MDI-приложении


1-1090498101
Ziko
2004-07-22 16:08
2004.08.08
Инсталляция приложения, создание ключей в реестре


1-1090833370
Gennadiy
2004-07-26 13:16
2004.08.08
Проблема с меню!!


14-1089952269
ИМХО
2004-07-16 08:31
2004.08.08
Музыкальный слух


14-1090059311
ruslan
2004-07-17 14:15
2004.08.08
CDROM