當計算機一段時間不活動時執行 exe

當計算機一段時間不活動時執行 exe

遵循給我的建議這個問題我提出了這個問題。所以我有一個exe,我想在電腦空閒(我所說的空閒不是指睡眠,我的意思是不活動或不被使用)後運行一段時間,比如說30分鐘。一旦達到“非活動”超時,我希望應用程式運行。說我的電腦設置為在電源選項中只有“屏幕睡眠後”選項,沒有計算機睡眠,因此電腦不會進入睡眠狀態或屏幕鎖定屏幕,除非我使用 Windows+L 鍵強制它,並且我想保持這些設置不變。我想偵測不活動時間段,一旦達到不活動時間段,我想執行一個 exe。知道如何做到這一點嗎?

編輯:

我已按照答案中提供的步驟進行操作:

建立一個新任務,新增一個觸發器,將其設為 event: on Idle 並建立該任務。在條件標籤中,指定任務等待 1 分鐘才能變為空閒狀態(而不是僅等待 10 分鐘進行測試)。

但我等待了10多分鐘,任務從未在PC1上觸發,但在另一台PC2上觸發。我在網上檢查過,發現它PowerCfg -requests會顯示是什麼阻止了 PC 處於空閒狀態,當我在 PC2 上運行它時,沒有任何返回,但當我在 PC1 上運行它時,我得到了這個“舊版內核呼叫程式“ 司機。

所以我使用了Powercfg -requestsoverride,但是當我運行時powercfg -requestsoverride Driver "Legacy Kernel Caller" System,它成功了,我在Powercfg -requestsoverride列表中找到了它,但powercfg -requests它仍然顯示[DRIVER] Legacy Kernel Caller在下面SYSTEM:,並且任務從未觸發,請問有什麼建議嗎?

答案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

相關內容