web-dev-qa-db-ja.com

スリープモードまたは休止状態モードから再開したときのタスクの自動実行

まだログインせずにスリープモードまたは休止状態モードからWindows10ラップトップの電源を入れたときに、自動的に実行したいプログラムがあります。プログラムを実行すると、コマンドプロンプトが表示されます。プログラムをWindowsスタートアップフォルダに入れてみましたが、ラップトップをシャットダウンモードからオンにしたときにのみプログラムが自動的に実行されます。また、タスクスケジューラでタスクを作成して、「イベント時(ログ:システム、ソース:Microsoft-Windows-Power-Troubleshooter、イベントID:1)」や「ワークステーションのロック解除時」などのトリガーを使用してタスクを実行しようとしました。 、ただし、ラップトップをスリープモードまたは休止状態モードからオンにしたときにプログラムが起動しません(プログラムがオンになっているかどうかを確認するためにログインしましたが、オンになりませんでした)。 「OnWake」という名前のトリガーなどはないようです。これを機能させる方法について誰かが何か提案があれば、私はこれを大いに感謝します!

1
qccaprospect
Set colMonitoredEvents = GetObject("winmgmts:")._
    ExecNotificationQuery("SELECT * FROM Win32_PowerManagementEvent")
Do
    Set strLatestEvent = colMonitoredEvents.NextEvent
    If strLatestEvent.EventType = 4 Then 
        Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
        Set colItems = objWMIService.ExecQuery("Select * From Win32_Process")
        For Each objItem in colItems
            If objItem.name = "Calculator.exe" then objItem.terminate
        Next
    ElseIf strLatestEvent.EventType = 7 Then 
        wscript.sleep 2000
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "calc.exe", 1, false
    End If
Loop

このスクリプトは、システムが一時停止するのを待ち、実行中の場合は電卓を終了します。再開すると、電卓を再起動します。

スクリプトにsomething.vbsという名前を付けます。ダブルクリックして実行します。見えない。タスクマネージャーでは、wscript.exeと呼ばれます。

ドキュメントについては、 https://docs.Microsoft.com/en-us/windows/win32/cimwin32prov/win32-powermanagementevent を参照してください。

1
Mark