求一个用DELPHI编写的系统进程监控程序 求一个用DELPHI编写的系统进程监控程序 比如说系统进程里出现了QQ.EXE的进程便发出报警或者杀掉其进程。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一段杀掉进程的代码.报警的功能你自己添加一下exefilename要注意大小写function killtask(exefilename:string):integer;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 对,建立你要监控的进程名数据表,用一个Timer监控数据表中的进程名 调用上面代码 ,uses里要加那些内容? 用上面兄弟的代码,得到进程name,写入数据库,然后用一个Timer监控数据表中的进程名。 uses iphlpapi;另外建议将进程名数组或列表作为参数传递给 killtask,每次 createtoolhelp32snapshot 就遍历一次进程名列表,而不是拿到一个进程名就 createtoolhelp32snapshot 一次。 Uses Tlhelp32;iphlpapi是什么东东?我的怎么没有? 江湖告急,在线等,满意就结贴。 刚装了dbgideh 导出excel问题 打开文件时如果输入的文件名不存在该怎么处理 求职 准备从C转向Delphi的困惑:( 报表(excel)中每页都要有当前页的数量,金额的合计的问题,急!急!急!!!! 关闭窗口时如何使其最小化而不是真正关闭,谢谢! 当我按下最大化,最小化按钮时,事件是在哪个类里处理的? quickrep和query方面的问题?在线 请大家帮帮忙,怎样把filelistbox1里的文件拖放到listbox1中,而且只是把文件名放在listbox1里.????? 我数学不好,学编程感觉没信心 发送邮件问题,都快烦死了
exefilename要注意大小写
function killtask(exefilename:string):integer;
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,每次 createtoolhelp32snapshot 就遍历一次进程名列表,而不是拿到一个进程名就 createtoolhelp32snapshot 一次。