如何检测Vista UAC是否已启用?

And*_*eff 22 uac windows-vista

我需要我的应用程序以不同的方式运行,具体取决于Vista UAC是否启用.我的应用程序如何在用户的计算机上检测UAC的状态?

Phi*_*eck 18

此注册表项应告诉您:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Run Code Online (Sandbox Code Playgroud)

EnableLUA (DWORD)

1已启用/ 0或已禁用

但这假设您有权阅读它.

以编程方式,您可以尝试读取用户的令牌并猜测它是否是在启用UAC的情况下运行的管理员(请参阅此处).不是万无一失,但可能会奏效.

这里的问题更多的是"为什么你需要知道" - 它与答案有关.实际上,没有API,因为从操作系统行为的角度来看,重要的是用户是否是管理员 - 他们如何选择保护自己,因为管理员是他们的问题.