8

再起動後にアプリを自動実行するにはどうすればよいですか?(c#コードによる)レジストリの「runOnce」キーに、アプリのパスを使用して新しい文字列を作成します。OSがOSをロードする前にこのAPPを実行する問題は次のとおりです。APPはロードされますが、エクスプローラーはロードされません。APPを閉じた後、エクスプローラーがロードされます。APPでコンピューターを再起動し、再起動後にAPPを再度開きます。

4

3 に答える 3

10

アプリから再起動をクリックしたら、レジストリに次の変更を加えます。

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Runレジストリ ブランチにエントリを作成します。

使用する

Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\YourAppName");

エントリを作成します。

RegistryKey myKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\YourAppName", true);

myKey.SetValue("YourAppName", "AppExecutablePath", RegistryValueKind.String);

実行パスを設定します。

システムが再起動した後、アプリが起動し、これを呼び出して再起動エントリを削除します。

Registry.LocalMachine.DeleteSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\YourAppName");
于 2011-09-20T10:06:00.873 に答える
4

Run ではなく RunOnce にプログラムを追加するのが最善の策のようです。そうすれば、次回の再起動後に開始されますが、後でキーを消去することを心配する必要はありません.

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
于 2012-09-05T06:58:05.630 に答える
2

サブキーを作成するべきではないため、これはより良い答えです。また、これは自動的に破棄されます。

string runKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run";

using (RegistryKey key = Registry.LocalMachine.OpenSubKey(runKey, true))
{
    key.SetValue("MyProgram", @"C:\MyProgram.exe");
}
于 2014-09-10T00:32:23.203 に答える