AutoHotkey は、タスク スケジューラを使用して起動時に ClickOnce アプリを起動できません。

AutoHotkey は、タスク スケジューラを使用して起動時に ClickOnce アプリを起動できません。

私はAutoHotkey(AHK)が大好きで、すべてのアプリを起動するのに使用しています。AHK コマンドピッカーWindows 8 UAC によって設定された制限を回避するために、AHK スクリプトを管理者として実行する必要があります。これで、スクリプトを管理者として実行しているかどうかに関係なく、AHK スクリプトを手動で開始すると、ClickOnce アプリを起動できるようになります。これは、AHK から ClickOnce アプリを起動する方法の例です。

C:\SomeFolder\MyClickOnceApp.appref-ms を実行します。

私が抱えている問題は、タスクスケジューラを使用して、WindowsにログインしたときにAHKスクリプトを自動的に開始します。これを行うと、スクリプトを使用して ClickOnce アプリを起動しようとしても何も起こりません。スクリプトを閉じて、スケジュールされたタスクを手動で実行して再起動することはできますが、それでも機能しません。その後、スクリプトを閉じて手動で起動すると (.ahk ファイルをダブルクリックして)、すべて正常に動作し、ClickOnce アプリを起動できます。その後、スクリプトをもう一度閉じて、スケジュールされたタスクを手動で実行して再起動すると、すべて正常に動作し、ClickOnce アプリを起動できます。

したがって、問題はタスク スケジューラがスクリプトを起動したことが原因ではなく、何らかの理由で、ClickOnce アプリを開く前にスクリプトを少なくとも 1 回手動で実行する必要があるようです。

.ahk ファイルを手動でダブルクリックする場合と、スケジュールされたタスクで起動する場合の違いがよくわかりません (スケジュールされたタスクは、ユーザー (管理者) として実行するように設定されており、[最高権限で実行] がオンになっています)。しかし、何らかの理由で、手動でファイルをダブルクリックすると、PC を次に再起動するまで AHK スクリプトが別の方法で実行されるように設定が変更されるようです。考えられる 1 つの違いは、スケジュールされたタスクでは [開始場所 (オプション)] フィールドが AHK スクリプトを含むフォルダー (例: C:\SomeFolder) に設定されているのに対し、.ahk ファイルをダブルクリックして手動で実行する場合は、これが設定されているかどうかわからないことです。

ご提案があれば、ぜひお聞かせください。ありがとうございます。

答え1

問題は、タスク スケジューラが、現在ログインしているユーザーと同じユーザー セッションで実行されないことです。(同じユーザーとして実行されている場合もありますが、同じユーザーが Windows で複数のセッションを持つことができ、そのすべてが GUI 内で開始されるわけではありません) タスク スケジューラがアプリケーションを開始しても、GUI を表示する場所がないと、何が起こるでしょうか。ログオンしているユーザーと同じセッションで実行されていません。

関連情報