![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как найти handlu всех открытых приложений ??? [D7, WinXP]
PRT © (2006-06-17 22:28:00)Доброго времени суток! Подскажите как найти handlu всех открытых приложений ???
(только приложения с окнами)
Handle (2006-06-18 12:53:00) [1]
var
Wnd: hWnd;
buff: array[0..MAX_PATH] of Char;
PrId: DWORD;
PrHandle: THandle;
begin
ListBox1.Clear;
Wnd := GetWindow(Handle, gw_HWndFirst);
while Wnd <> 0 do begin
if (Wnd <> Application.Handle) and
IsWindowVisible(Wnd) and
(GetWindow(Wnd, gw_Owner) = 0) and
(GetWindowText(Wnd, buff, sizeof(buff)) <> 0)
then begin
GetWindowThreadProcessId(Wnd, PrId);
PrHandle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, PrId);
ListBox1.Items.Add(IntToStr(PrHandle));
end;
Wnd := GetWindow(Wnd, gw_hWndNext);
end;
ListBox1.ItemIndex := 0;
PRT (2006-06-18 12:05:00) [2]
> Чтобы потом создать таймер и посылать с переодичностью в
> 1мс всем несвернутым собщение WM_CLOSE :) ??
Нет, я таким не занимаюсь ...
Хочу создать программку которой пользователь сможет ставить пароли на открытые окна, но для этого мне нужно знать хендлы окон .... вот
guard_gg (2006-06-18 08:10:00) [3]Чтобы потом создать таймер и посылать с переодичностью в 1мс всем несвернутым собщение WM_CLOSE :) ??
Скажи для чего, может пришлю.. ;)