web-dev-qa-db-ja.com

特権の高い自動実行プログラム(タスク)が自動的に停止する

起動時に自動的に実行したいプログラムがありますが、昇格された特権が必要なため、UAC 干渉します 自動実行します。

この問題を回避するために タスクスケジューラメソッド を使用しました。そのためのタスクを作成し、タスクを実行するためのショートカットを作成し、最小化するように設定して、Startupフォルダーのスタートメニュー

ほとんどの場合、期待どおりに機能します。プログラムは起動時にプロンプ​​トなしで自動的に実行され、トレイに最小化されます。

しかし、問題があります。それは、理由もなく、時々消えていくようです。なぜ‽

(実際、私は2つのプログラムに対してこれを実行しました。1つは消え、もう1つはクラッシュダンプを作成します。)

4
Synetech

この問題は、デフォルトのタスク設定が原因である可能性が高く、ラップトップでより頻繁に発生します。

タスクを作成するとき、デフォルト設定のいくつかは必要なものではなく、自動実行プログラムで問題が発生することが判明したため、必ず確認する必要がありますタスクスケジューラの回避策を使用する場合のすべての設定。

設定タブ(図1)で、タスクが…設定より長く実行される場合は必ず無効にしてください。この設定(デフォルトは3日)をそのままにしておくと、自動実行プログラムが数日後に終了するため、シャットダウンする代わりにスタンバイまたは休止状態を使用すると(ラップトップで一般的)、プログラムの実行が停止していることがわかります。最後に起動してから3日後。

条件タブ(図2)で、電源セクションのすべてのオプションを必ず無効にしてください。デフォルト設定では、起動中にバッテリーで実行している場合、プログラムは自動実行されません。さらに、デフォルトでは、起動中に接続してプログラムを実行しても、コードを抜いてバッテリーに切り替えるとすぐに、Windowsが停止します

このタスクを実行するためにコンピューターを起動するオプションはデフォルトで無効になっています。自動実行プログラムではこれが必要ないため、そのままにしておく必要があります。)

警告

注意すべきことの1つは、設定をオフにするとStart the only if the computer is on AC power、それからそれは設定を無効にしますStop if the computer switches to battery power(図3)。明らかな意味は、後者の設定のチェックボックスが何を示しているかに関係なく、前者のチェックボックスを無効にした場合、バッテリー電源に切り替えたときにタスクが終了しないことです。これは理にかなっており、ほとんどすべての人がそうなることを期待します。さらに、これはすべての適切に記述されたプログラムの動作方法です。残念ながら、Windowsにはバグがあり、タスクスケジューラは、最初のチェックボックスに関係なく、2番目のチェックボックスに従います。したがって、最初の設定を無効にしても、2番目の設定にチェックがある場合は、バッテリー電源に切り替えるwillタスクを停止します。これを停止するには、最初のオプションを有効にし、2番目のオプションを無効にしてから、最初のオプションを再度無効にする必要があります。


図1:デフォルトのタスクスケジューラ設定

Task Scheduler default settings

図2:デフォルトのタスクスケジューラの条件

Task Scheduler default conditions

:タスクスケジューラのバッテリー電源のバグバグ私を終わらせない

Task Scheduler battery-power bug

6
Synetech