Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Определить процесс [D7, WinME, WinXP]


Керик ©   (2006-04-10 00:22:00) 

Как узнать название процесса, запустившего программу?


Eraser   (2006-04-10 13:19:00) [1]


> Керик   (10.04.06 00:22)

Использовать ToolHelp API, как в предыдущем посте, только копать в сторону PROCESSENTRY32.th32ParentProcessID.


Handle   (2006-04-10 09:39:00) [2]



uses
TLHelp32;

var
 Form1: TForm1;
 Wnd:           hWnd;
 ProcessID:     DWORD;
 hSnapShot:     THandle;
 uProcess:      PROCESSENTRY32;
 r:             longbool;

procedure TForm1.Button1Click(Sender: TObject);
begin
Wnd:= FindWindow(nil, 'Калькулятор');
GetWindowThreadProcessID(Wnd, ProcessID);
hSnapShot:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
uProcess.dwSize := Sizeof(uProcess);
if(hSnapShot<>0)then
begin
r:=Process32First(hSnapShot, uProcess);
while r <> false do
begin
if  uProcess.th32ProcessID = ProcessID then
ShowMessage('Имя процесса запустившего программу Калькулятор - ' + uProcess.szExeFile);
r:=Process32Next(hSnapShot, uProcess);
end;
CloseHandle(hSnapShot);
end;
end;

end.


Наверх

Титульная страница Поиск, карта сайта Написать письмо