我写的一个程序要强行关闭另外一个程序,但是那个要被关闭的程序在退出是有提示要你确认是否提示。所以使用sendmessage(HWndMis,WM_CLOSE,0,0)语句无法关闭此程序,请问如何才能通过程序方式强行关闭此程序。

解决方案 »

  1.   

    uses TLHelp32;procedure TerminateExe(strExeName);//eg : 'Excel.exe'
    var
      FSnapshotHandle:THandle;
      FProcessEntry32:TProcessEntry32;
      Ret : BOOL;
      ProcessID : integer;
      s:string;
    begin
      FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
      FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
      Ret:=Process32First(FSnapshotHandle,FProcessEntry32);
      while Ret do
      begin
        s:=UpperCase(ExtractFileName(FProcessEntry32.szExeFile));
        if s=UpperCase(strExeName) then
        begin
          ProcessID:=FProcessEntry32.th32ProcessID;
          TerminateProcess(OpenProcess(PROCESS_TERMINATE,false,ProcessID),1);
          s:='';
        end;
        Ret:=Process32Next(FSnapshotHandle,FProcessEntry32);
      end;
    end;
      

  2.   

    如果关闭的是excel.exe,是不是将excel.exe写入所有以上代码中strExeName的位置中?
      

  3.   

    是的
    在你这里,你可以写成project1.exe