
%localappdata% フォルダー (そのサブフォルダー) にあるアプリを、ユーザーにインストールされたときに Windows の起動時に実行するようにしたいと思います。 キーの下に文字列値を作成しHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
、それを に設定すれば、それが可能ですC:\Users\my_user\AppData\Local\programs\My_App\My_App.exe" --app_id=12346
。
ただし、ユーザーへの直接参照をそこに入れたくありません。そのため、 を入れる代わりに、を String 値でC:\Users\my_user\AppData\Local
使用するようにしました。その結果、 のようになります。%localappdata%
%localappdata%\programs\My_App\My_App.exe" --app_id=12346
ただし、ローカル アプリ データ参照を使用しても機能しません。アプリは起動しません。レジストリ キー内で %LocalAppData% への参照を使用する方法があるかどうか疑問に思います。構文エラーがあるのでしょうか?
手伝ってもらえますか?
アプリを呼び出すための bat ファイルを作成して に配置することもすでに考えましたがC:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
、これはすべてのユーザーに対して実行されるため、すべてのユーザーがアプリをインストールしていることを保証できません。したがって、これは良い選択ではありません。
答え1
名前%AppData%
と%LocalAppData%
「データ」という単語が含まれているので、これらのディレクトリはない実行可能ファイルの保存には使用できません。そうしないでください。
全体のデザインを変えたいと思います。
アプリケーションをアプリケーションの標準の場所に配置します:
- インストーラーがある場合は、使用する
%ProgramFiles%\My_App\
か、%ProgramFiles(x86)%\My_App\
- もしそれが来たらインストーラーなし、私は次のようなものを使います
C:\Tools\My_App\
- インストーラーがある場合は、使用する
自動実行エントリを HKCU レジストリ サブツリー (個々のユーザー用) または HKLM サブツリー (ローカル マシン = すべてのユーザー用) に挿入します。
アプリケーションが起動されると、ユーザー名、すべてのユーザーディレクトリのパスなどに完全にアクセスできます。アプリケーションが起動された後にのみ、ユーザーに依存する作業を開始してください。この方法により、EXE ファイルの場所や同様の魔法に依存する必要がなくなります。
答え2
Windows 10 は、レジストリ エントリ%LocalAppData%
を認識します。私はそれらを GPO で正常に使用しています。Run
RunOnce
実行可能パスにスペースが含まれる可能性がある場合は、二重引用符が文字列の両端にあることを確認してください。(これはあなたにとって 4 年遅すぎますが、おそらく、あなた自身の試みがうまくいかなかった理由の 1 つは、あなたが示したものに二重引用符がペアではなく 1 つしかなかったことです。)