| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 934 人关注过本帖
标题:杀死进自己的程重新启动自己
只看楼主 加入收藏
dxcat
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-11-15
收藏
 问题点数:0 回复次数:1 
杀死进自己的程重新启动自己

全部源代码如下(无窗体结构,最后面有说明):
program Project1;

uses
Winprocs,SysUtils,Tlhelp32;//注意添加单元文件

function KillTask(ExeFileName:string):integer;//杀进程函数KillTask
const
PROCESS_TERMINATE = $0001;
var
ContinueLoop: BOOLean;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
Result :=0;
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
Result := Integer(TerminateProcess(
OpenProcess(PROCESS_TERMINATE,
BOOL(0),
FProcessEntry32.th32ProcessID),0));
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;

//调用上面的函数KillTask
begin
//杀进程,停止程序
KillTask('abc.exe');//调用函数,杀你的程序abc.exe
//重新启动程序
WinExec('abc.exe',SW_SHOW);//然后再重新启动abc.exe
Exit;
end.
//=========================================
//【说明】编译后的Project1.exe是一个无窗体的EXE程序
//方法:创建一个CONSOLE application 把{$APPTYPE CONSOLE}删了,这个就是一个基本的应用程序框架,
//不显示任何东西,再在里面写东东,程序很小。写在这里共享,怕日后在自己电脑里找不到^_^

搜索更多相关主题的帖子: 源代码 PROCESS KillTask uses Result 
2006-11-23 08:24
dxcat
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-11-15
收藏
得分:0 
纠正:杀死自己的进程再重新启动自己
2006-11-23 08:25
快速回复:杀死进自己的程重新启动自己
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013371 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved