在启动时启动Windows窗体程序

时间:2018-08-28 08:39:45

标签: c# windows-forms-designer

我正在使用以下代码在启动时启动程序:

RegistryKey rk = Registry.CurrentUser.OpenSubKey
    ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);

    rk.SetValue(AppName, Application.ExecutablePath);

但是当运行我的项目时,该错误发生了:

  

System.UnauthorizedAccessException:“试图执行未经授权的操作。”

1 个答案:

答案 0 :(得分:1)

很久以前就有这个问题。

首先,您需要在HKCU\Software\Microsoft\Windows\CurrentVersion\Run中设置注册表。请确保您具有足够的权限!

        using (RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true))
        {
            key.SetValue(AppName, Application.ExecutablePath);
        }

然后按照此post:

中的步骤进行操作
  
      
  1. 将其添加到当前用户的“启动”文件夹中。这要求您的应用程序运行所需的权限最少,并为用户提供最多的权限   控制和反馈正在发生的事情。不利的一面是   确定是否已经显示该复选框更加困难   下次他们在您的程序中查看该屏幕时选中。
  2.   
  3. 将其添加到HKey_Current_User\Software\Microsoft\Windows\CurrentVersion\Run   注册表项。唯一的问题是它需要写访问权限   到注册表,但并不总是可用。
  4.   
  5. 创建在用户登录时触发的计划任务
  6.   
  7. 将其添加到HKey_Local_Machine\Software\Microsoft\Windows\CurrentVersion\Run   注册表项。唯一的问题是它需要写访问权限   到注册表,但并不总是可用。
  8.   
  9. 将其设置为Windows服务。仅当您真的是真的,知道要确定要为 all 运行该程序时,才执行此操作   用户在计算机上。
  10.