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

Вниз

Отлов окна по его классу   Найти похожие ветки 

 
g-l-u-k ©   (2006-03-01 23:00) [0]

Доброго времени суток!
Подскажите пожалуйста,как отловить запущенное приложение по классу его окна или как можно со 100% увереностью найти нужное запущенное приложение,я раньше дела так:

procedure Find;
p.dwSize := SizeOf(p);
hWin := CreateToolHelp32Snapshot(TH32CS_SnapProcess, 0);
try
  Process32First(hWin, p);
  repeat
    Result := AnsiUpperCase("prog.exe") = AnsiUpperCase(p.szExeFile);
  until Result or (not Process32Next(hWin, p));
  if Result = true then
   begin
     MessageBox(0,"Приложение запущенно","!!",mb_ok);
   end
 finally
 closehandle(hWin);
end;
end;


Но если изменить prog.exe к примеру на proga.exe то данный код становится бесполезным.Что делать в данной ситуации?


 
Eraser ©   (2006-03-01 23:10) [1]


> g-l-u-k ©   (01.03.06 23:00)


> как отловить запущенное приложение по классу его окна

FindWindow, GetWindowThreadProcessId.

> как можно со 100% увереностью найти нужное запущенное приложение

правильно делал, можно конечно ещё проверять полный путь.

> Но если изменить prog.exe к примеру на proga.exe то данный
> код становится бесполезным.Что делать в данной ситуации?

проверять контрольную сумму или хэш (сигнатуру) exe файла.


 
g-l-u-k ©   (2006-03-01 23:18) [2]


> FindWindow, GetWindowThreadProcessId.

Но отлов окна через FindWindow не пройдёт так как можно изменить название окна и тогда FindWindow становится безполезным.А GetWindowThreadProcessId работает по-моему лишь в том случае если извесно название окна.

> правильно делал, можно конечно ещё проверять полный путь.

Но для этого нужно точно знать где установлена сама программа,что не всегда возможно.

> проверять контрольную сумму или хэш (сигнатуру) exe файла.

А где можно прочитать про этот метод или найти исходник?


 
Eraser ©   (2006-03-01 23:53) [3]


> g-l-u-k ©   (01.03.06 23:18) [2]


> Но отлов окна через FindWindow не пройдёт так как можно
> изменить название окна и тогда FindWindow становится безполезным.
>

FindWindow ищёт окна не только по названию окна.

> А GetWindowThreadProcessId работает по-моему лишь в том
> случае если извесно название окна.

не название, а дескриптор.

> А где можно прочитать про этот метод или найти исходник?

использовать либо CryptoAPI, либо компоненты LockBox. И какой-нибудь хэширующий алгоритм, например MD5.


 
elfy   (2006-03-02 00:06) [4]

если первым аргументом FindWindow поставить nil то будет поиск по классу, не обращая внимания на заголовок


 
g-l-u-k ©   (2006-03-03 20:49) [5]


> elfy   (02.03.06 00:06) [4]
> если первым аргументом FindWindow поставить nil то будет
> поиск по классу, не обращая внимания на заголовок

Спасибо,попробую



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

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

Наверх




Память: 0.48 MB
Время: 0.028 c
4-1141487716
Volf_555
2006-03-04 18:55
2006.05.28
Как сделать копию экрана когда играет видео?


15-1146632993
Палтус
2006-05-03 09:09
2006.05.28
Browser Helper Object


2-1147524870
Viconia
2006-05-13 16:54
2006.05.28
Закрытие формы


15-1146566557
konrads
2006-05-02 14:42
2006.05.28
UPDATE В2005


9-1130581983
VolanD666
2005-10-29 14:33
2006.05.28
Octree. Как сохранить в файл?