如何定时结束指定的进程(例如结束任务管理器的shutdown.exe进程)

解决方案 »

  1.   

    设置一个定时器,到了时间,然后给指定的进程发送关闭进程的消息或者调用WindowsAPI来结束进程就是了。
      

  2.   

    下面一段代码是结束WORD进程,供参考:
    procedure KillWordProcess;
    const
      PROCESS_TERMINATE = $0001;
    var
      ContinueLoop: Boolean;
      FSnapshotHandle: THandle;
      FProcessEntry32: TProcessEntry32;
      ExeFileName: string;
      i: Integer;
    begin
      if KillWordProcessID[0] > 0 then
      begin
        ExeFileName := 'WINWORD.EXE';
        FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
        FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
        ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
        while ContinueLoop do
        begin
          if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
            UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
            UpperCase(ExeFileName))) then
          begin
            for i:=1 to KillWordProcessID[0] do
            begin
              if KillWordProcessID[i] = FProcessEntry32.th32ProcessID then
              begin
                TerminateProcess(OpenProcess(PROCESS_TERMINATE, False, KillWordProcessID[i]), 0);
                Break;
              end;
            end;
          end;
          ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
        end;
        CloseHandle(FSnapshotHandle);
      end;
      KillWordProcessID[0] := 0;
    end;