Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
3-1089892499
ra4fcr
2004-07-15 15:54
2004.08.08
Как добавить записи в таблицу с ключевыми полями?


1-1090847901
CTAPbIi
2004-07-26 17:18
2004.08.08
Как программно сделать горизонтальный scroll в Memo


3-1089798219
Anics
2004-07-14 13:43
2004.08.08
DBGrid как в 1С Предприятие 7.7


1-1090869200
ANT
2004-07-26 23:13
2004.08.08
Переменные


9-1082469550
Creep
2004-04-20 17:59
2004.08.08
Canvas





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский