Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.03.11;
Скачать: [xml.tar.bz2];

Вниз

Как получить HWND задачи?   Найти похожие ветки 

 
Milz   (2002-01-11 10:27) [11]

Вот пример получения списка всех окон в системе с сопутствующей информацией, выдели нужное по имеющейся информации (+ см. TProcessEntry32).


uses tlhelp32;

procedure TAppMainForm.UpdProcList;
label lbCont;
var
FindWnd : hWnd;
buff: ARRAY [0..127] OF Char;
str:string;
hSn: THandle;
FindWProcID:DWORD;
lppe: TProcessEntry32;
begin
Proclist.Clear;
//Делаем снимок процессов
hSn := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS ,0);
// перебираем список окон
FindWnd := GetWindow(Handle, gw_HWndFirst);
while FindWnd <> 0 do begin
// ID окна
str := IntToHex(FindWnd,8);
// Заголовок окна
GetWindowText(FindWnd, buff, sizeof(buff));
str:= str + " " + StrPas(buff);
// ID процесса, открывшего данное окно
GetWindowThreadProcessId(FindWnd,@FindWProcID);
str:= str + " [" + IntToHex(FindWProcID,8);
// Имя файла процесса, открывшено данное окно
//Перебираем список всех процессов и находим относящийся к данному окну
if Process32First(hSn, lppe) then
repeat
//Сравниваем ID и получаем имя ехе и путь
if lppe.th32ProcessID = FindWProcID then begin
str:= str + " " + ExtractFileName(lppe.szExeFile) + "]";
goto lbCont;
end;
until not Process32Next(hSn, lppe);
lbCont:
Proclist.Items.AddObject(str,tObject(FindWnd));
FindWnd := GetWindow(FindWnd, gw_hWndNext);
end;
CloseHandle(hSn);
Proclist.ItemIndex := 0;
end;



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

Форум: "WinAPI";
Текущий архив: 2002.03.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.004 c
4-32613
vvr
2002-01-10 17:25
2002.03.11
CREATECARET


1-32458
Ig
2002-02-19 22:08
2002.03.11
Как правильно обработать сообщения?


1-32494
AlexMey
2002-02-25 01:25
2002.03.11
Вопрос по поводу конвертирования string во float и про функцию StrToFloat()


3-32400
vitnt2000
2002-02-12 08:56
2002.03.11
Доступ к базе без BDE


1-32476
Igor Nikolaev
2002-02-24 09:40
2002.03.11
Treeview





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский