0

ユーザーがインストールした後、コンピューターが起動するたびに動作する必要があるアプリを作成しています。afterInstall イベントのインストーラー calss で実行しようとしましたが、インストーラーはそれ自体をレジストリに配置し、Windows の再起動時に実行するため、commited イベントで実行しようとしましたが、同じ結果が得られました。その後、コミットされたプロパティ インストーラー クラスを false に変更しましたが、コミットされたイベントは起動しません。私の最後の試みは、インストール後にアプリを実行し、それ自体をレジストリに書き込むことでした。奇妙なことが起こり、レジストリに怒りましたが、私が望んでいた場所にはありませんでした私が直す?

私のコード:

bool registry = true;

RegistryKey rkSubKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", false);
string[] values = rkSubKey.GetValueNames();

foreach(string name in values)
{

  if (name.Equals("appName"))
    registry = false;
}

if (registry)
{

  RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
  rkApp.SetValue("appName", Application.ExecutablePath.ToString());
  DialogResult r = MessageBox.Show("The system now needs to restart your computer whould you like to do it now?", "Restart is needed", MessageBoxButtons.YesNo);
  if (r == DialogResult.Yes)
  {
    System.Diagnostics.Process.Start("ShutDown", "/r");
  }
  return;
}
mainModule.start();
4

1 に答える 1