uses TLHelp32;
procedure TForm1.Button1Click(Sender: TObject);
var
vProcessId: DWORD;
vProcessEntry32: TProcessEntry32;
vHandle: THandle;
vBool: Boolean;
vBuffer: array[0..255] of Char;
begin
GetWindowThreadProcessId(Handle, @vProcessId); //根据窗体句柄查找进程ID
vHandle := CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
vBool := Process32First(vHandle, vProcessEntry32);
while vBool do begin //遍历进程
if vProcessEntry32.th32ProcessID = vProcessId then begin
GetModuleFileName(vProcessEntry32.th32ModuleID, vBuffer, 255); //获取程序所在文件
ShowMessage(vBuffer);
Break;
end;
vBool := Process32Next(vHandle, vProcessEntry32);
end;
DeleteObject(vHandle);
end;