![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Определить процесс [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.