最近用C++做了一个安装引导程序。由于程序是在windows xp下开发,当拿到win7上测试时,发现程序根本就不能正常运行。其原因是因为这个程序要访问一些系统关键资源,必须以管理员身份运行。所以在运行时,必须点击右键,选择以管理员身份运行。
如果事情就这样简单就好了。偏偏这个引导程序要负责系统的重新启动,然后再次运行。这下可把我给难住了。当再次运行的时候,是系统自动启动的,根本就没有办法来设置以管理员身份运行。所以,当程序再次启动时就不能接着运行后面的任务了。
有没有办法,让程序自动启动时就要求以管理员身份运行呢?一个偶然的机会,我发现了下面的设置,居然将这个问题解决了。
Property Page->Configuration Properties->Linker->Manifest File下
将UAC Execution Level设置为requireAdministrator。
那么当程序运行时,系统会自动弹出对话框要求是否允许用超级管理者的权限运行。