场景
- 我们在开发
Windows
程序时, 安装程序后一般会以admin
方式启动程序, 这时候程序的权限一般是admin
权限。可如果重新打开程序时, 程序就是asInvoker
的权限,即所属用户的Normal
权限. 程序在某些逻辑上admin
和非admin
是有区别的,比如响应WM_DROPFILES
消息在admin
下是失效的. 或者由于某些原因我想看这个程序是否管理员模式启动的,如何快速查看呢?
说明
Windows
自带的任务管理器可以查看到:
Win7
打开任务管理器, 在进程(Processes)
的Tab
页,选择菜单->视图(view)->选择列(Select Columns)->勾选UAC虚拟化(UAC Virtualization)
图1:如果在UAC虚拟化(UAC Virtualization)
列是已禁止(Disable)
就是正常模式启动的,如果显示的是Not Allowed
或者不显示内容的就是管理员模式启动的程序.
Win10
打开任务管理器, 在详细信息(Detail)
的Tab
页,鼠标在表头名称(Name)
右键->选择列(Select Columns)->勾选特权(Elevated)
,在这列里的内容如果显示的是是
,那么这个进程就是管理员模式启动的.
图2
可以通过taskkill来判断
如果通过在进入命令行并执行 taskkill /f /pid 进程ID
来判断进程是否是管理员启动.
出现以下错误结束不了基本上就是管理员启动的了:
C:\Users\apple>taskkill /f /pid 4048
ERROR: The process with PID 4048 could not be terminated.
Reason: Access is denied.