在Windows 8启动期间自动运行我的C#应用​​程序的方法

时间:2015-06-23 04:16:12

标签: c# windows registry autorun

我目前在Windows 8启动期间使我的应用程序自动运行有问题。我试图将应用程序放在注册表中。事实上,我尝试了本地机器和当前用户方法:

        RegistryKey rkHKLM = Registry.LocalMachine;
        RegistryKey rkRun;
        RegistryKey rkHKCU = Registry.CurrentUser;
        RegistryKey rkRun1;

        rkRun = rkHKLM.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true);
        rkRun1 = rkHKCU.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true);
        if (checkBox1.Checked)
        {
            rkRun.SetValue("MyApp", Application.ExecutablePath);
            rkRun1.SetValue("MyApp", Application.ExecutablePath);
        }
        else
        {
            rkRun.DeleteValue("MyApp");
            rkRun1.DeleteValue("MyApp");
        }

此方法在Windows 8中不起作用。但我在Windows 7或XP中没有此问题。 Windows 8有什么不​​同吗?是否有任何新方法?

  • 根据您的信息,我已将应用设置为以管理员身份运行,但仍未在启动时自动运行。

2 个答案:

答案 0 :(得分:0)

将链接或批处理文件添加到:

c:\ Users \(用户名)\ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup

您可以在代码中用c:\Users\ (username) \AppData\Roaming替换"%AppData%"

Environment.GetEnvironmentVariable("AppData");

答案 1 :(得分:0)

将快捷方式放入: c:\ Users \ {登录名} \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup 应在您登录时运行该应用程序。

您可以选择创建任务。您可以在触发器中选择是在登录时还是在计算机启动时运行。

" Task Scheduler Managed Wrapper"是一个有用的库,用于以编程方式创建任务。