2017-06-20 49 views
-1

我开始我的应用程序无法在系统启动后问题了我已将此添加到清单如何在系统上自动运行从清单中的admin ritghts开始? C#

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
     </requestedPrivileges> 

我知道它有事情做与Windows UAC。但我真的不知道如何解决这个问题,而不会丢失程序启动时的管理权限。

这是我写到注册表:

if (checkBox13.Checked) 
      { 
       File.WriteAllText(@"C:\ProgramData\Programname\autorunstate", "true"); 

       RegistryKey rk = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); 
       rk.SetValue("Programname", Application.ExecutablePath.ToString()); 

      } 

将是非常好的,如果有人能告诉我如何让程序开始对系统现在开始吧? 它在我将这行添加到清单之前就有效。 谢谢。

+1

当你需要管理员权限“你想在当你正在升高。那么你的程序运行的时候,你不需要海拔安装时间写设置权限”,必须有用户登录提供这些特权。在系统启动时执行时,没有用户可以提供它们。鸡/鸡蛋:您的应用程序需要管理员用户的许可才能允许提升,但您希望在管理员用户可以提供权限之前运行。为什么您需要运行提升(除了获取写入注册表项所需的权限)? –

+0

但是,我登录到Windows后启动。 那么如何在用户登录后让它运行? –

+0

使用HKCU而不是HKLM,或者在用户的启动文件夹(在Win7上,位于C:\ Users \ username \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup)中创建一个快捷方式。 –

回答

0

好吧,我通过在安装时创建我想要在ProgramData文件夹中编写的文件夹来解决此问题。我使用Visual Studio安装项目,现在我可以写入/ ProgramData/ProgramName /文件夹。感谢您的帮助。

相关问题