Как, зная Handle окна программы, определить имя EXE

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

// Для начала определяешь какому процессу принадлежит окно:

Var pProcID : ^DWORD;

begin

GetMem (pProcID, SizeOf (DWORD));

GetWindowThreadProcessId (WinHandle, pProcID);

end;

// а после этого используешь TProcessEntry32 примерно так:

function GetExeNameByProcID (ProcID : DWord) : String;

var

ContinueLoop : BOOL;

FSnapshotHandle : THandle;

FProcessEntry32 : TProcessEntry32;

begin

FSnapshotHandle := CreateToolhelp32Snapshot (TH32CS_SNAPPROCESS, 0);

FProcessEntry32.dwSize := Sizeof(FProcessEntry32);

ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);

Result := »;

while (Integer (ContinueLoop) 0) and (Result=») do

begin

if FProcessEntry32.th32ProcessID = ProcID then

Result := FProcessEntry32.szExeFile;

ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);

end;

end;

// Не забудь в uses добавить Tlhelp32

{/codecitation}

Добавить комментарий