窗口句柄或窗口标题得到进程句柄

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;

 

posted @ 2012-03-28 15:11  ftwsnow  阅读(6912)  评论(0编辑  收藏  举报