use Tlhelp32;
函数:
function
TForm1.FindProcess(aFileName:
String):
boolean;
//
zxf
add
2007-4-3
判断本机是否在运行后台程序
var
hSnapshot:THandle;
//获取进程列表
lppe:TProcessEntry32;
//用于查找进程
Found:boolean;
//用于判断进程是否历遍完成
begin
Result:=false;
hSnapshot:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
//获取系统进程列表
lppe.dwSize:=SizeOf(TProcessEntry32);
//在调用Process32First
API之前,需要初始化lppe记录的大小
Found:=Process32First(hSnapshot,lppe);
//将进程列表的第一个进程信息读入lppe记录中
while
Found do
begin
if
(UpperCase(ExtractFileName(lppe.szExeFile))=UpperCase(aFileName))
or
(UpperCase(lppe.szExeFile)=UpperCase(aFileName))
then
begin
Result:=true;
break;
end;
Found
:=
Process32Next(hSnapshot,
lppe);
//将进程列表的下一个进程信息读入lppe记录中
end;
end;
调用:
if FindProcess( ‘ZC020.EXE’) then