0

次のコードを使用して、アプリケーションの自動起動を管理しています。アプリケーションは管理者権限を必要とするように設定されており、実際に管理者権限を要求します。

RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
if (checkRunOnStartup.Checked)
{
    rkApp.SetValue("MyApp", Application.ExecutablePath.ToString());
}
else
{
    rkApp.DeleteValue("MyApp", false);
}

これは、開発マシンを除いて、テストしたシステムでは機能しません。ここで何が間違っていますか?

4

1 に答える 1

0

reg キーを書き込む代わりに、Windows のスタートアップ フォルダーにアプリへのショートカットを作成/削除できます。Environment.SpecialFolder.Startup はそのパスを返します。reg キー オプションを完全に設定した場合は、DotnetThoughtsごとのコード スニペットを次に示します。主な違いは、彼が .ToString() を削除したことです。

private void RegisterInStartup(bool isChecked)
{
   RegistryKey registryKey = Registry.CurrentUser.OpenSubKey
        ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
   if (isChecked)
   {
       registryKey.SetValue("ApplicationName", Application.ExecutablePath);
   }
   else
   {
     registryKey.DeleteValue("ApplicationName");
   }
}
于 2013-04-25T14:04:56.230 に答える