如何实现进程枚举,需要每个进程的完整路径,谢谢

解决方案 »

  1.   

    http://www.delphibbs.com/keylife/iblog_show.asp?xid=18418
      

  2.   

    挂起系统
    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;