【问题标题】:Application not starting at reboot due to UAC settings由于 UAC 设置,应用程序无法在重新启动时启动
【发布时间】:2012-03-29 16:52:43
【问题描述】:

在我的 C# WPF 应用程序中,我通过在启动注册表中创建一个新键来将应用程序设置为启动应用程序,如下所示:

RegistryKey startapp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\CurrentVersion\\Run", true);
startapp.SetValue("Myexe.exe", Aseembly.GetExecutingAssembly().Location);
Process.Start("Myexe.exe", url);

这运行正常并且注册表值被设置,如在 regedit 中检查的那样。用户应该具有设置注册表的管理权限。

另外,问题是在重新启动计算机时,我注意到只有在关闭用户帐户控制(安全性最低)而不是默认设置时,应用程序才会在启动时运行。我的计算机中的其他应用程序(例如 Google Talk 等)不是这种情况吗?那么,如何让我的应用程序在启动时运行,即使用户帐户控制 UAC 设置有点高?

【问题讨论】:

  • 您的其他应用程序需要什么样的权限?
  • @sixlettervariables: 管理员权限
  • 我怀疑 Google Talk 需要管理权限才能在启动时运行。您应该使用服务帐户将进程作为服务运行。
  • 在这种情况下你能举个例子吗?

标签: c# wpf registry reboot


【解决方案1】:

您可能想尝试将应用程序清单添加到您的应用程序,以指示该应用程序需要管理权限才能运行。有关详细信息,请参阅此相关 SO 问题:UAC need for console application

【讨论】:

  • 我是这台机器的管理员。我注意到的最后一件事是注册表在那里(如 regedit 中所示)。如果 UAC 关闭,应用程序会在启动时运行。但是,如果 UAC 设置为默认设置,则不会在 sratup 运行应用程序。在 UAC 设置为默认设置的情况下,将清单添加到我的应用程序会影响这个东西以使其运行?
  • 另一件事:在同一个注册表路径下,即使UAC设置为默认,也有Forefront TMG Client等其他应用程序运行
  • @user1240679:我对其他产品了解不多,但我猜他们正在做类似的事情。 Vista \ Win 7 在UAC 方面有些不同。即使您以本地管理员身份登录,仍有一些功能需要显式请求提升权限。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-12
  • 2019-01-05
  • 1970-01-01
  • 1970-01-01
  • 2017-08-14
  • 1970-01-01
相关资源
最近更新 更多