Forcing my MFC app to run as Administrator on Vista

只愿长相守 提交于 2019-12-10 10:27:18

问题


I have an MFC app built using Visual Studio 2008 and it needs to run on W2K, XP, 2003 and Vista. The application writes to HKLM in the registry and will only work on Vista if you run it as Administrator.

My question is: can I force the app to run as Adminstrator automatically? Does it involve creating a manifest file? At the moment I have the following in stdafx.h which I guess creates a manifest file on the fly:

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")

Can I modify this line to force the elevation or do I need to do something with the VC project manifest settings?

Thanks in advance.


回答1:


I found out how to do this using some advanced C++ linker options:

  1. Open the project's Property Pages dialog box.

  2. Expand the Configuration Properties node.

  3. Expand the Linker node.

  4. Select the Manifest File property page.

  5. Modify the Enable User Account Control (UAC), UAC Execution Level, and UAC Bypass UI Protection properties.




回答2:


You can do this using the manifest. Possibly something like this but I can't recall exactly:

<requestedExecutionLevel level="requireAdministrator"/>



回答3:


You can do either. You can add a similar line with a #pragma to add the requireAdministrator directive, or you can set it in the property sheets in VS2008.




回答4:


  1. Select the project in question, go to menu Project > Properties.

  2. Navigate to Configuration Properties > Linker > Manifest File.

  3. In the UAC Execution Level entry, select the option

requireAdministrator (/level='requireAdministrator')



来源:https://stackoverflow.com/questions/666672/forcing-my-mfc-app-to-run-as-administrator-on-vista

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!