Matthew的Blog

  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
AFileName指定xxx.exe就行了,如Excel.exe
先Uses TLHelp32;

procedure EndProcess(AFileName: string);
const
  PROCESS_TERMINATE=$0001;
var
  ExeFileName: String;
  ContinueLoop: BOOL;
  FSnapshotHandle: THandle;
  FProcessEntry32: TProcessEntry32;
begin
  ExeFileName := AFileName;
  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
        TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0),
                          FProcessEntry32.th32ProcessID), 0);
      ContinueLoop := Process32Next(FSnapshotHandle,FProcessEntry32);
    end;
end;
posted on 2006-04-29 16:41 matthew 阅读(3827) 评论(10)  编辑 收藏 引用 所属分类: Delphi编程

评论

# re: Delphi中结束进程 2006-06-09 16:01 安定法
有没有能能根据程序ID 来结束该程序呢???

  回复  更多评论
  

# re: Delphi中结束进程 2006-06-09 16:11 matthew
直接调用TerminateProcess(进程ID, 0);  回复  更多评论
  

# re: Delphi中结束进程 2006-11-22 14:26 chen
楼主方法好,我试过,不错,谢谢  回复  更多评论
  

# re: Delphi中结束进程 2007-03-09 09:12 來自台北的困惑者
版主您好
我有一個疑問,想要請教您:
如果這個進程是來自於遠端電腦而且是其他登入的使用者所引發的,該用什麼方法結束掉?(上面的方法行不通)
因為我在2000 Server上面,想要攔截一些登入使用者的執行程式,謝謝。
  回复  更多评论
  

# re: Delphi中结束进程[未登录] 2007-03-09 10:13 matthew
我是这样理解的,不知道对不对:
远端电脑通过客户端启动了你电脑上的服务程序,你需要停止WINDOWS里的相关服务。  回复  更多评论
  

# re: Delphi中结束进程 2008-07-06 11:49 56635498
不行呢,我这样用的
procedure TForm1.Button3Click(Sender: TObject);
begin
EndProcess('execel.exe');
end;  回复  更多评论
  

# re: Delphi中结束进程[未登录] 2009-06-09 08:15 abc
不行啊,我直接把代码黏贴到代码里,运行不了,说是Uses TLHelp32;有错误,,= =。。  回复  更多评论
  

# re: Delphi中结束进程 2009-08-08 11:44 天才无间
楼主,我爱死你啦!!  回复  更多评论
  

# re: Delphi中结束进程 2010-07-19 11:04 ljlgoodboy
很好用,非常感谢!  回复  更多评论
  

# re: Delphi中结束进程 2014-06-20 22:22 苏永益
不行啊,报错为不满足向前或外部说明!  回复  更多评论
  

只有注册用户登录后才能发表评论。