如何根据QQ.exe进程找到其句柄,然后结束他的运行?用啥函数可以找到QQ的进程句柄呢?

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls,TLHelp32;type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Memo1: TMemo;
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button2Click(Sender: TObject);
    var
      ok: Bool;
      ProcessListHandle,h: THandle;
      ProcessStruct: TProcessEntry32;
      a : DWORD;
      tm : string;
    begin  ProcessListHandle := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
      ProcessStruct.dwSize := Sizeof(ProcessStruct);
      ok := Process32First(ProcessListHandle, ProcessStruct);
      while Integer(ok) <> 0 do
        begin
          tm := ProcessStruct.szExeFile;
          Memo1.Lines.Add(tm);
          if UpperCase(tm ) = 'QQ.EXE' then
          begin
             h := openProcess(Process_All_Access, true, ProcessStruct.th32ProcessID);
             GetExitCodeProcess(h, a);
             TerminateProcess(h, a);
             Break;
          end;
          ok := Process32Next(ProcessListHandle, ProcessStruct);
        end;
      CloseHandle(ProcessListHandle);
    end;end.