コンピュータが一定時間非アクティブになったときにexeを実行する

コンピュータが一定時間非アクティブになったときにexeを実行する

私に与えられたアドバイスに従ってこの質問質問させてください。コンピューターがアイドル状態 (アイドル状態とはスリープ状態ではなく、非アクティブまたは使用されていない状態) になった後、たとえば 30 分間実行したい exe ファイルがあります。「非アクティブ」タイムアウトに達したら、アプリケーションを実行したいです。私の PC は、電源オプションの「次の時間が経過したら画面をスリープ状態にする」オプションのみがあり、コンピューターはスリープ状態にならないように設定されているので、Windows + L キーを使用して強制しない限り、PC はスリープ状態にはならず、画面はロック画面になりません。これらの設定はそのままにしておきたいです。非アクティブ期間を検出し、非アクティブ期間に達したら exe ファイルを実行したいです。これを行う方法をご存知ですか?

編集:

回答に記載されている手順に従いました:

新しいタスクを作成し、トリガーを追加し、イベント: アイドル時に設定してタスクを作成しました。条件タブで、タスクがアイドル状態になるまで 1 分間待機するように指定しました (テストのためだけに 10 分間待機するのではなく)。

しかし、10分以上待ってもタスクはPC1ではトリガーされず、別のPC2でトリガーされます。オンラインで調べたところ、PowerCfg -requestsPCがアイドル状態にならない原因が示され、PC2で実行すると何も返されませんが、PC1で実行すると次のメッセージが表示されます。レガシーカーネル呼び出し元" 運転者。

そこで、 を使用しましたPowercfg -requestsoverridepowercfg -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

最も簡単な解決策は、古き良きタスク スケジューラを使用することです。

タスク スケジューラを使用すると、特定の日時でタスクを設定できるだけでなく、ログオン時やアイドル時などの特定のイベントでタスクを設定することもできます。

新しいタスクを作成し、トリガーを追加して、イベント: アイドル時に設定し、タスクを作成します。条件タブでは、タスクがアイドル状態になるまでの待機時間を指定できます (これを 30 分に設定)。

さらに、タスク スケジューラから、システムが再びアクティブになったときにタスクを自動的に強制終了することもできます。

答え3

申し訳ありませんが、C# ではありませんが、十分簡単です。これは AutoIt に最適な作業です。出典: http://autoitscript.com

ここに私がまとめたスクリプトがあります。これを .au3 ファイルに入れて、notepad を 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

関連情報