很多时候我们编写的工具软件需要管理员权限才能运行。这时候,在启动的时候提示需要管理员权限远比启动之后发现自己没有足够的权限无法运行要好。比如,我经常使用的 RW Everything 就是这样的。

vcadm1

本文以VS2015为例介绍一下如何给 VC 的程序添加这个功能。
1.在 “Project Properties”上点右键

vcadm2

2.在 “Configuration Properties”中的“Linker”“Manifest File”进行设置

vcadm3

3.在 UAC Execution Level 中选择“requireAdministrator(/level=’requireAdministrator’)”

vcadm4

4.重新编译代码即可,最明显的就是程序右下角出现盾牌图标。

vcadm5

运行这样的 Application 会出现需要管理员权限的对话框了。

  1. krishna says:

    最近我也用到了这个manifest。为了解决4K显示器上,我的程序的GUI画面扭曲的问题,将manifest单独导出,添加设置dpiaware为false,再用windows SDK中的mt.exe绑回去,然后一切OK了。

    另外有一个问题是,我需要做一个function,机器S5后一分钟自动唤醒。我在bios setup中已经做了这个设置,
    在windows开始菜单关机的话,一分钟后不会自动唤醒;
    我这里有个别人写的小程序,如果用这个关机,机器一分钟后会自动唤醒。
    这个小程序我不知道是谁写的,所以想问Z.t前辈是否了解这种原理?

    • ziv2013 says:

      一般都是设置 rtc 唤醒的,你需要注意的是你设定的时间是否超过了当前时间。比如:当前是 12:00 你希望 12:03 唤醒,于是进入 windows,结果关机的时候已经是 12:04 那么是一直无法唤醒的。

      • krishna says:

        常规情况确实如此。
        只是我这种模式有点奇怪,bios setup唤醒方式为daily,时间设置为00:01:00(hh:mm:ss),看上去是每天零晨 一分钟开机。现在是早上8点,保存重启到桌面,按以下2种方式之一关机:
        1,点击小程序的关机,一分钟后自动唤醒。再开机,再点小程序关机,一分钟后自动唤醒...loop...
        2,在开始菜单机关,一分钟后不会唤醒。
        这个工具适用skylake/kabylake/cannolake/...,应该是个通用的win32 mfc应用程序,到目前为止,没找到原理。

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>