var
hWindow: HWND; { 窗體句柄 }
dwProcessID: DWORD; { 進程 ID }
hProcess: THandle; { 進程句柄 }
begin
{ 根據標題獲取窗體的句柄 }
hWindow := FindWindow(nil, '標題');
{ 通過窗體句柄獲取進程 ID }
GetWindowThreadProcessId(hWindow, dwProcessID);
{ 通過進程 ID 獲取進程句柄 }
hProcess := OpenProcess(PROCESS_ALL_ACCESS, False, dwProcessID);
{ 結束該進程 }
TerminateProcess(hProcess, 0);
end;
var
ContinueLoop: BOOLean;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32; {進程結構}
begin
Memo1.Clear;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); {創建進程快照}
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
while ContinueLoop do
begin
Memo1.Lines.Add('ProcessID='+inttostr(FProcessEntry32.th32ProcessID));
Memo1.Lines.Add(FProcessEntry32.szExeFile);
ContinueLoop :=Process32Next(FSnapshotHandle,FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;