进程枚举
如何实现进程枚举,需要每个进程的完整路径,谢谢 问题点数:50、回复次数:2Top
1 楼liangqingzhi(老之)回复于 2005-11-19 10:03:53 得分 10
http://www.delphibbs.com/keylife/iblog_show.asp?xid=18418Top
2 楼xiaocuo_zrf(小错——淫雄所贱略同)回复于 2005-11-19 10:13:02 得分 40
挂起系统
SetSystemPowerState(FALSE,FALSE);
杀死进程
procedure TForm1.Button1Click(Sender: TObject);
var
H:THandle;
P:DWORD;
begin
H:=FindWindow(nil,'无标题 - 记事本');
if H<>0 then
begin
GetWindowThreadProcessId(H,@P);
if P<>0 then
TerminateProcess(OpenProcess(PROCESS_TERMINATE,False,P),$FFFFFFFF);
end;
end;
判断进程是否挂起
function isHung(theWindow: HWnd; timeOut: Longint): Boolean;
var
dwResult: DWord;
begin
Result := SendMessageTimeout(theWindow,
WM_NULL,
0,
0,
SMTO_ABORTIFHUNG Or SMTO_BLOCK,
timeOut,
dwResult) <> 0;
end;
列出系统进程
(注意uses TLHelp32)
然后
var lppe: TProcessEntry32;
found : boolean;
Hand : THandle;
begin
Hand := CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
found := Process32First(Hand,lppe);
while found do
begin
ListBox.Items.Add(StrPas(lppe.szExeFile));//列出所有进程。
found := Process32Next(Hand,lppe);
end;
end;
Top




