求一个用DELPHI编写的系统进程监控程序  比如说系统进程里出现了QQ.EXE的进程便发出报警或者杀掉其进程。

解决方案 »

  1.   

    一段杀掉进程的代码.报警的功能你自己添加一下
    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;
      

  2.   

    你从数据库里面读出所有的进程名,然后用个循环去调用killtask
      

  3.   

    对,建立你要监控的进程名数据表,用一个Timer监控数据表中的进程名
      

  4.   

    调用上面代码 ,uses里要加那些内容?
      

  5.   

    用上面兄弟的代码,得到进程name,写入数据库,然后用一个Timer监控数据表中的进程名。
      

  6.   

    uses  iphlpapi;
    另外建议将进程名数组或列表作为参数传递给 killtask,每次 createtoolhelp32snapshot 就遍历一次进程名列表,而不是拿到一个进程名就 createtoolhelp32snapshot 一次。
      

  7.   

    Uses Tlhelp32;iphlpapi是什么东东?我的怎么没有?