2014-01-18 54 views
2

嘿,我试图通过使用此代码来发动对启动我一直做它就好了一个应用程序:运行作为启动管理员

RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); 
if (rkApp.GetValue("Folder Locker") == null) 
{ 
    rkApp.SetValue("Folder Locker", Application.ExecutablePath.ToString()); 
} 

但现在当我这样做:

requestedExecutionLevel level="requireAdministrator" uiAccess="false" 

以管理员身份启动该应用程序在启动时不启动我需要帮助我希望这将是一个小问题,而不是一个大问题。

+3

通常,正常的应用程序不应该需要管理员权限,这就是为什么UAC会在运行应用程序时提示他们 - 最好考虑另一种方法,比如作为Windows服务运行,以及执行任何操作根据需要IPC –

+0

http://superuser.com/a/537101/198092这个问题确实属于超级用户 - 并且是超级用户和超级用户的重复 –

回答

3

你不能让应用程序在登录时运行,这将提升并以某种方式绕过UAC对话框。这几乎会打败UAC的目的。

选项包括:

  • 接受用户将被提示进行提升。
  • 修改您的应用程序,使其不需要提升。如果某些操作需要提升,则启动新的提升进程以执行这些任务
  • 在UAC不适用的会话0中将流程作为服务运行。