컴퓨터가 한동안 비활성 상태일 때 exe 실행

컴퓨터가 한동안 비활성 상태일 때 exe 실행

나에게 주어진 조언에 따라이 질문저는 이런 질문을 했습니다. 그래서 컴퓨터가 유휴 상태(유휴 상태라는 것은 절전 모드를 의미하는 것이 아니라 비활성 상태이거나 사용되지 않음을 의미함) 후에 30분 동안 실행하고 싶은 exe가 있습니다. "비활성" 시간 초과에 도달하면 애플리케이션이 실행되기를 원합니다. 내 PC가 전원 옵션에서 컴퓨터 절전 모드가 아닌 "다음 이후 화면 절전" 옵션만 갖도록 설정되어 있으므로 Windows+L 키를 사용하여 강제로 실행하지 않는 한 PC가 절전 모드로 전환되지 않거나 화면이 잠금 화면이 됩니다. , 이 설정을 그대로 유지하고 싶습니다. 비활성 기간을 감지하고 비활성 기간에 도달하면 exe를 실행하고 싶습니다. 이것이 어떻게 이루어질 수 있는지 아시나요?

편집하다:

답변에 제공된 단계를 따랐습니다.

새 작업을 생성하고, 트리거를 추가하고, 이벤트를 유휴 상태로 설정하고 작업을 생성했습니다. 조건 탭에서 작업이 유휴 상태가 될 때까지 1분 동안 대기하도록 지정했습니다(테스트에만 10분이 소요되는 대신).

그런데 10분 이상 기다리면 작업이 PC1에서는 트리거되지 않고 다른 PC2에서는 트리거됩니다. 온라인으로 확인한 결과 PowerCfg -requestsPC가 유휴 상태가 되는 것을 막는 이유가 무엇인지 알 수 있으며 PC2에서 실행하면 아무것도 반환되지 않지만 PC1에서 실행하면 다음과 같은 메시지가 나타납니다.레거시 커널 호출자" 운전사.

그래서 나는 사용했지만 Powercfg -requestsoverride실행하면 powercfg -requestsoverride Driver "Legacy Kernel Caller" System성공하고 목록에서 찾았 Powercfg -requestsoverride지만 여전히 아래에 powercfg -requests표시되고 작업이 트리거되지 않습니다. 조언을 부탁드립니다.[DRIVER] Legacy Kernel CallerSYSTEM:

답변1

당신이 원하는 것은 쉽습니다. 작업 스케줄러를 사용하여 수행할 수 있습니다.

작업을 생성할 때 Conditions탭 아래에 다음 옵션이 있습니다 start the task if computer is idle for:. 거기에 원하는 유휴 시간을 입력하세요.

여기에 이미지 설명을 입력하세요

실행하려는 .exe와 실행 빈도를 프로그래밍한 다음 유휴 상태를 사용하세요.

답변2

가장 쉬운 해결책은 오래된 작업 스케줄러를 사용하는 것입니다.

작업 스케줄러를 사용하면 특정 날짜에 작업을 설정할 수 있을 뿐만 아니라 로그온 시와 같은 특정 이벤트에 대한 작업을 설정할 수도 있고 유휴 상태일 때도 작업을 설정할 수도 있습니다.

새 작업을 생성하고, 트리거를 추가하고, 이를 event: on Idle로 설정하고 작업을 생성합니다. 조건 탭에서 작업이 유휴 상태가 될 때까지 기다리는 시간을 지정할 수 있습니다(30분으로 설정).

또한 시스템이 다시 활성화되면 작업 스케줄러에서 자동으로 작업을 종료할 수도 있습니다.

답변3

죄송합니다. C#에서는 아니지만 충분히 쉽습니다. 이것은 AutoIt을 위한 완벽한 작업입니다.http://autoitscript.com

여기 제가 여러분을 위해 함께 던진 스크립트가 있습니다. .au3 파일에 넣고 메모장을 exe로 바꾸고 실행에 전체 경로를 포함합니다.

#include <Timers.au3>
While 1
   Sleep(10)
   $idleTimer = _Timer_GetIdleTime()
   If $idleTimer > 60000 And Not ProcessExists("notepad.exe") Then
      Run("notepad.exe")
   ElseIf $idleTimer < 10 Then
      ProcessClose("notepad.exe")
   EndIf
WEnd

참조 -https://superuser.com/a/700647/1092861

답변4

명령 프롬프트에서 다음을 사용하여 schtasks작업을 더 쉽게 만들 수 있습니다.

schtasks /create /tn "My Task" /tr "EXE Application path" /sc onidle /i Number_Of_Minutes_Inactive

관련 정보