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