VS2015中使用管理员身份运行程序

1 问题提出

Windows10+VS2015环境中,有些程序需要管理员身份才能正确运行。例如

HANDLE hDevice = CreateFile(_T("\\\\.\\PhysicalDrive0"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);

if (hDevice == INVALID_HANDLE_VALUE)

{

return -1;

}

以上代码的功能是以可读写的权限打开硬盘。此时,如果VS2015没有用管理员身份打开,hDevice的值为INVALID_HANDLE_VALUE,即无法打开硬盘。

2 问题解决

可以使用两种方法解决以上问题,第一种是使用管理员身份打开VS2015;第二种是使用管理员身份运行程序。

2.1 使用管理员身份打开VS2015

可以通过两种方法使用管理员身份打开VS2015,第一种是鼠标右键菜单选择,另外一种是对devenv.exe文件附加管理员权限。

2.1.1 鼠标右键菜单

选中VS2015图标,之后在鼠标右键菜单中选择“以管理员身份运行”。

2.1.2 devenv.exe文件附加管理员权限

devenv.exe是程序开发平台Microsoft Visual Studio 2015用户界面程序,双击VS2015图标,实际上就是运行了该程序。devenv.exe文件的位置在"VS2015安装路径\Common7\IDE\devenv.exe"

鼠标选中devenv.exe文件,在右键菜单中选择“兼容性疑难解答”,如图1所示。

 VS2015中使用管理员身份运行程序_第1张图片

1 兼容性疑难解答

接下来在“程序兼容性疑难解答”对话框中选择“疑难解答程序”,如图2所示。

VS2015中使用管理员身份运行程序_第2张图片 

2 疑难解答程序

接下来在“你注意到什么问题”对话框中选择“该程序需要附加权限”,点击“下一步”,如图3所示。

 

VS2015中使用管理员身份运行程序_第3张图片 

3 该程序需要附加权限

等待一段时间后,弹出“故障排除已完成”对话框,选择“是,为此程序保存这些设置”,如图4所示。

 VS2015中使用管理员身份运行程序_第4张图片

4 故障排除已完成

最后,在“疑难解答已完成”对话框中点击“关闭疑难解答”,如图5所示。

VS2015中使用管理员身份运行程序_第5张图片 

5 疑难解答已完成

此后,再打开VS2015时,就会弹出是否使用管理员身份运行程序的对话框,可以根据需要进行选择。

2.2 使用管理员身份运行程序

如果已经用非管理员身份运行了VS2015,此时可以通过修改程序的配置实现以管理员身份运行程序。

使用非管理员身份的VS2015打开要运行的程序代码,之后在VS2015菜单栏中选择“项目->xxx属性”,在弹出的“属性页”对话框中选择“配置属性->链结器->清单文件”,在对话框右侧的“UAC执行级别”中选择“requireAdministrator (/level='requireAdministrator')”,最后点击“应用”按键,如图6所示。此时,就可以在非管理员身份打开VS2015的时候,以管理员身份运行该程序了。

 VS2015中使用管理员身份运行程序_第6张图片

6 修改UAC执行级别

相关链接:

UACUAC的全称是User Account Control,即用户账户控制。是Windows Vista以及之后操作系统中一组新的基础结构技术,可以帮助阻止恶意程序损坏系统,同时也可以帮助组织部署更易于管理的平台。在VS2015中,UAC的默认权限是asInvoker,权限requireAdministrator即为使用管理员身份运行该程序。

你可能感兴趣的:(C++基础)