我有一个C#应用程序,我想将此应用程序添加到启动中。我用:
RegistryKey Key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true);
Key.SetValue("APPName", "C:\\Program Files\\App\AppName.exe");
我的应用程序需要管理员运行权限,我想要一种方法来注册我的应用程序或添加到受信任的应用程序。
现在我正在使用:
var info = new ProcessStartInfo(
Assembly.GetEntryAssembly().Location)
{
Verb = "runas", // indicates to elevate privileges
};
var process = new Process
{
EnableRaisingEvents = false, // enable WaitForExit()
StartInfo = info
};
process.Start();
仅获取一种方法的访问权限,但现在我遇到了
的问题 unauthorizedAccessException was unhandled
我正在尝试在C:\ Program Files中创建一个目录。
答案 0 :(得分:0)
如果您使用visual studio 2010或2012,请转到添加新项目Application Manifest。 将requestedExecutionLevel更改为以下内容:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
现在,当您的应用程序启动时,它将要求以提升模式运行。
另一种方法是在提升模式下重启应用程序。为此,您不需要应用程序清单。
您可以在这里阅读这两种技术:
http://www.codeproject.com/Articles/105506/Getting-Elevated-Privileges-on-Demand-using-C