1

exeアプリケーションをインストールするwithを作成しましたNSISが、アプリケーションが既に実行されている場合は、起動時に更新されます。

これを達成する最も簡単な方法は、レジストリエントリを下に追加することですHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

私のエントリは次のようになります。

Value name: InstallRUS
Value data: cmd /C "C:\Location\of\my\program.exe /S"

この実行可能ファイルは、単純にファイルをディレクトリにコピーし、スクリプトを実行してアプリを Windows サービスとして登録します。

Windowsを再起動すると、最初はサイレント モードで 2 回実行され、2 回目はサイレント フラグが無視されるようです。

ログアウトして再度ログインすると、サイレント モードで 1 回正しく実行されます。

これは、タスクが Windows の起動時とログイン時に実行されるという結論につながりますが、ドキュメントには次のように記載されています。

Run および RunOnce レジストリ キーにより、ユーザーがログオンするたびにプログラムが実行されます。既定では、RunOnce キーの値は、コマンド ラインが実行される前に削除されます。

Windowsの起動は「ユーザーログイン」にカウントされますか?

最初の実行後にエントリが削除されないのはなぜですか?

どうすればこれを修正できますか?

なぜWindowsは私に嘘をついているのですか?

ノート:

  1. Windows 7 Professional x32 を使用しています
  2. これに関連しているようです: Windows Registry RunOnce Loop but I am not write to the registry
4

0 に答える 0