根据进程名结束进程
2007-07-22 13:39
169 查看
unit FunKP;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Tlhelp32;
type
TForm1 = class(TForm)
ListBox1: TListBox;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//函数
function KillProcess(ProcessName: PChar): Boolean;
const
PROCESS_TERMINATE = $0001;
var
Snap: THandle;//存放CreateToolhelp32Snapshot()
PE: TProcessEntry32;//存放PROCESSENTRY32结构
Lp: Boolean;//存放Process32First()、Process32Next()
Op: THandle;//存放OpenProcess()
begin
Result := False;
snap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);//获得进程快照
if snap <= 0 then begin
Exit;
end;
PE.dwSize := SizeOf(TProcessEntry32);//为dwSize赋值
Lp := Process32First(snap,PE);//枚举当前的进程
while Lp do begin
if PE.szExeFile = ProcessName then//进程名与szExeFile比较
begin
Op := OpenProcess(PROCESS_TERMINATE,False,PE.th32ProcessID);//打开句柄
Result := TerminateProcess(Op,0);//结束进程
end;
Lp := Process32Next(snap,PE);//枚举当前的进程
end;
CloseHandle(snap);//关闭句柄
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//调用函数
ListBox1.Items.Add('程序开始运行');
if KillProcess('notepad.exe') then begin
ListBox1.Items.Add('结束进程notepad.exe成功');
end else begin
ListBox1.Items.Add('结束进程notepad.exe失败');
end;
end;
end.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Tlhelp32;
type
TForm1 = class(TForm)
ListBox1: TListBox;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//函数
function KillProcess(ProcessName: PChar): Boolean;
const
PROCESS_TERMINATE = $0001;
var
Snap: THandle;//存放CreateToolhelp32Snapshot()
PE: TProcessEntry32;//存放PROCESSENTRY32结构
Lp: Boolean;//存放Process32First()、Process32Next()
Op: THandle;//存放OpenProcess()
begin
Result := False;
snap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);//获得进程快照
if snap <= 0 then begin
Exit;
end;
PE.dwSize := SizeOf(TProcessEntry32);//为dwSize赋值
Lp := Process32First(snap,PE);//枚举当前的进程
while Lp do begin
if PE.szExeFile = ProcessName then//进程名与szExeFile比较
begin
Op := OpenProcess(PROCESS_TERMINATE,False,PE.th32ProcessID);//打开句柄
Result := TerminateProcess(Op,0);//结束进程
end;
Lp := Process32Next(snap,PE);//枚举当前的进程
end;
CloseHandle(snap);//关闭句柄
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//调用函数
ListBox1.Items.Add('程序开始运行');
if KillProcess('notepad.exe') then begin
ListBox1.Items.Add('结束进程notepad.exe成功');
end else begin
ListBox1.Items.Add('结束进程notepad.exe失败');
end;
end;
end.
相关文章推荐
- windows 根据HWND获取进程名字 和结束进程源码
- Windows中根据端口号或PID查看进程、结束进程方法
- 根据进程名结束一个进程
- 如何根据进程名字结束进程
- Delphi根据进程PID等待进程结束或者结束进程
- 结束进程(根据可执行文件名)
- 根据进程名,查找并结束进程
- 根据进程名称获取进程pid,结束进程,执行exe文件
- 根据进程名字结束进程
- 根据关键字结束进程
- 根据端口号查找相应PID,从而在任务管理器中结束或查看相应进程
- c++根据程序名结束进程
- linux下根据进程号结束该进程
- 根据进程名来结束程序
- 根据进程名,查找并结束进程
- 【MFC】根据进程名结束进程学习
- C#计算机进程管理工具,根据CPU变化结束相应进程(附源码打包下载)
- C#计算机进程管理工具,根据CPU结束相应进程
- C#窗口中创建了线程,关闭窗口,进程无法结束的问题
- Qt项目在Windows下结束外部进程