1. 程式人生 > >Delphi根據程序PID等待程序結束或者結束程序

Delphi根據程序PID等待程序結束或者結束程序

本文描述的是已知窗體標題,先獲取某個程式的程序PID(即在工作管理員中的 程序ID),實現等待程序結束或者直接殺掉程序的方法。因為網路上直接結束程序的方法很多,本文不做深究,主要是等待程序結束。

使用以下程式碼即可實現:

procedure Execute;
var
  dwProcessID: DWORD;
  FormH,hApp: THandle;
begin
  inherited;
  //找到視窗控制代碼
  formh := FindWindow(nil, PWideChar('標題'));
  if FormH = 0 then
    Exit;
  //根據視窗控制代碼找到PID
  GetWindowThreadProcessId(formH, @dwProcessID); //通過活動視窗控制代碼獲取對應的程序Id
  //開啟程序,獲取許可權
  hApp:= OpenProcess(PROCESS_VM_OPERATION or Winapi.Windows.SYNCHRONIZE,FALSE,dwProcessID );
  //等待程序結束
  WaitForSingleObject(hApp,INFINITE);
end;