Форум: "WinAPI";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Вниз"повисшее" приложение Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.044 c