Текущий архив: 2006.09.03;
Скачать: CL | DM;
Вниз
как узнать Handle окна зная handle процесса Найти похожие ветки
← →
Polas (2006-05-08 21:54) [0]собственно сабж %)
← →
Eraser © (2006-05-08 22:00) [1]
> Polas (08.05.06 21:54)
никак... т.к. у процесса может быть несколько окон. Какое интересует? )
← →
Polas (2006-05-08 22:02) [2]главное (единственное)
← →
Eraser © (2006-05-08 22:09) [3]
> Polas (08.05.06 22:02) [2]
Если единственное - перечислить все окна в системе, и в этом списке найти то единственное, GetWindowThreadProcessId которого, возвращает ID нужного процесса.
← →
Polas (2006-05-08 22:22) [4]да но код не работает
Var
Wd : HWnd;
ProcessID: Integer;
ProcessHandle : THandle;
begin
Wd:=FindWindow(0,0);
While (wd<>0) do
Begin
GetWindowThreadProcessID(Wd, @ProcessID);
ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId);
if ProcessHandle=Process then begin
// blablabla
end;
Wd:=GetNextWindow(Wd,GW_HWNDNEXT);
End;
где Process - хендл процеса чье окно надо найте!
← →
Polas (2006-05-08 22:35) [5]хотя работает, дело просто в ProcessId, я эту переменную обьявил раньше. и она использовалась!!
Eraser, спосибо за помощь! %)
← →
Eraser © (2006-05-08 23:09) [6]
> Polas (08.05.06 22:35) [5]
> ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId);
вот это лишнее. Нужно сравнивать идентификатор, а не дескриптор, хотя всё зависит от того, что значит переменнаяProcess
.
← →
Polas (2006-05-08 23:43) [7]Process - хендл процеса чье окно надо найти!
Страницы: 1 вся ветка
Текущий архив: 2006.09.03;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.563 c