delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks
如何结束另一个程序的进程? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiAPI/html/delphi_20061116114828220.html
请问如何用Delphi程序结束另一个程序的进程?(请注意:是结束进程,而不仅仅是关闭程序)

SEND一个WM_CLOSE或WM_DESTROY消息到此进程去  
  或者用TerminateProcess结束进程

有具体的函数调用形式吗?或者请给一个实例,谢谢!

TerminateProcess(ProcessID,ExitCode);  
  ProcessID是进程ID,ExitCode是退出码;

TerminateProcess  
   
  返回值    
  Long,非零表示成功,零表示失败。    
   
  参数表    
  参数   类型及说明    
  hProcess   Long,指定要中断的一个进程的句柄(相当于进程的PID)  
  uExitCode   Long,进程的一个退出代码    
 

用TerminateProcess就可以了.

uses   Tlhelp32;  
   
  Function   KillProcess(List:Array   Of   String):Boolean;   Stdcall;  
  Var  
      s:String;  
      I,   Fs,   hKill:Integer;  
      FP:TProcessEntry32;  
  Begin  
      Result   :=   False;  
      Fs   :=   CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,   0);  
      FP.DwSize   :=   SizeOf(FP);  
      If   Process32First(Fs,   FP)   Then  
          Repeat  
              s   :=   UpperCase(Trim(FP.szExeFile));  
              For   I   :=   Low(List)To   High(List)   Do  
                  If   s=UpperCase(Trim(List[I]))   Then   Begin  
                      hKill   :=   OpenProcess(PROCESS_TERMINATE,   False,   FP.th32ProcessID);  
                      TerminateProcess(hKill,   0);//强制关闭进程  
                      CloseHandle(hKill);  
                      Result   :=   True;  
                  End;  
          Until   Not(Process32Next(Fs,   FP));  
  End;  
   
  KillProcess(['aaa.exe','bbb.exe']);  
 

posted on 2009-02-03 09:50 delphi2007 阅读(376) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。