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

Вниз

Мастера, помогите..   Найти похожие ветки 

 
YUS   (2001-11-01 03:13) [0]

Мастера, подскажите где ошибка? Нужно получить список окон и
имена ехе файлов.

uses tlhelp32;
procedure TForm1.Button2Click(Sender: TObject);
var
Window:hWnd; hSn: THandle; lppe: TProcessEntry32;
buffer: array [0..127] of char; ht, hProc: Cardinal;
begin
//Ищем хендл верхнего окна
Window:=GetForegroundWindow;
repeat
if (Window<>Application.Handle) and
(GetWindowText(Window,buffer,sizeof(buffer))<>0)
then begin
//Ищем ID процесса
ht := GetWindowThreadProcessId(Window,@hProc);
//Делаем снимок процесса
hSn := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS ,hProc);
//Получаем список всех процессов
if Process32First(hSn, lppe) then
repeat
//Сравниваем ID и получаем имя ехе и путь ????????????????
if lppe.th32ProcessID = ht then
begin
GetWindowText(Window,buffer,sizeof(buffer));
with ListView1.Items.Add do begin
Caption := buffer;
SubItems.Add(lppe.szExeFile);
end;
end;
until not Process32Next(hSn, lppe);
CloseHandle(hSn);
end;
//Ищем следующее окно
Window:= GetNextWindow(window,GW_HWNDNEXT);
until Window =0;

end;


 
troits ©   (2001-11-01 12:54) [1]

Так ,навскидку :
есть:
if lppe.th32ProcessID = ht then
должно быть
if lppe.th32ProcessID = hProc then

Да, в CreateToolHelp32Snapshot hProc передавать не нужно.


 
YUS   (2001-11-01 16:40) [2]

troits,
спасибо за направление все получилось.
Действительно if lppe.th32ProcessID = hProc then , а ht-ненужен
в ht := GetWindowThreadProcessId(Window,@hProc); ,но без CreateToolHelp32Snapshot не работает


 
troits ©   (2001-11-01 17:18) [3]

Я хотел сказать, что в функции
CreateToolHelp32Snapshot
при первом параметре TH32CS_SNAPPROCESS
второй игнорируется.
Можно поставить, например, 0.



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

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

Наверх




Память: 0.47 MB
Время: 0.012 c
3-21918
SVS
2001-12-04 13:11
2002.01.08
заполнение OleContainer из BlobField


1-22143
[NWC]Eminem
2001-12-20 12:04
2002.01.08
.dcu


14-22414
wHammer
2001-11-12 10:48
2002.01.08
Delphi 5 and(or(xor)) C++ Builder 5?


3-21949
Hermit
2001-12-05 13:22
2002.01.08
Значение текущей записи


14-22393
Феликс
2001-11-08 21:54
2002.01.08
Что делать?