我在 Visual Studio 2013 中有一个 WPF 项目,该项目有两个按钮。第一个按钮表示“启动服务”,第二个按钮表示“停止服务”。
当我以管理员身份运行 Visual Studio 时,这些按钮可以工作。但是,当我在没有权限的情况下打开 Visual Studio 时,会出现 InvalidOperationException 异常。
当 Visual Studio 不以管理员身份运行时,如何强制我的项目以特权启动?
我将 app.manifest 添加到我的项目中并更改为
level="requireAdministrator" uiAccess="false"/>
但它没有起作用。
为了启动或停止我的服务,我使用 ServiceController。
正如 Torben M. Philippsen 在他的著作中提到的article http://philippsen.wordpress.com/tag/requestedexecutionlevel-manifest/:
清单文件选择
编译并运行应用程序。如果您的 UAC 设置已启用,系统将提示您允许应用程序以提升模式启动。
-
有时它可以派上用场,检查您的应用程序是否实际上在提升模式下运行。也许你会发现这个代码片段很有用:
WindowsPrincipal myPrincipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
if (myPrincipal.IsInRole(WindowsBuiltInRole.Administrator) == false )
{
//show messagebox - displaying a messange to the user that rights are missing
MessageBox.Show("You need to run the application using the \"run as administrator\" option", "administrator right required", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else
{
MessageBox.Show("You are good to go - application running in elevated mode", "Good job" ,MessageBoxButtons.OK, MessageBoxIcon.Information);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)