怎么在DELPHI中关闭某个进程???

解决方案 »

  1.   

    function KillTask(ExeFileName: string): integer; 
    const 
    PROCESS_TERMINATE=$0001; 
    var 
    ContinueLoop: BOOL; 
    FSnapshotHandle: THandle; 
    FProcessEntry32: TProcessEntry32; 
    begin 
    result := 0; FSnapshotHandle := CreateToolhelp32Snapshot 
    (TH32CS_SNAPPROCESS, 0); 
    FProcessEntry32.dwSize := Sizeof(FProcessEntry32); 
    ContinueLoop := Process32First(FSnapshotHandle, 
    FProcessEntry32); while integer(ContinueLoop) <> 0 do 
    begin 
    if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = 
    UpperCase(ExeFileName)) 
    or (UpperCase(FProcessEntry32.szExeFile) = 
    UpperCase(ExeFileName))) then 
    Result := Integer(TerminateProcess(OpenProcess( 
    PROCESS_TERMINATE, BOOL(0), 
    FProcessEntry32.th32ProcessID), 0)); 
    ContinueLoop := Process32Next(FSnapshotHandle, 
    FProcessEntry32); 
    end; CloseHandle(FSnapshotHandle); 
    end; 
      

  2.   

     TerminateProcess;//结束进程 TerminateProcess(GetCurrentProcess, 0);//结束进程
      

  3.   

    一般这样~  wh := FindWindow('', nil);  //找窗口句柄
      GetWindowThreadProcessId(wh, id);
      ph := OpenProcess(PROCESS_TERMINATE, False, id);
      GetExitCodeProcess(ph, ExitCode);
      TerminateProcess(ph, ExitCode);