我需要我的应用程序以不同的方式运行,具体取决于Vista UAC是否启用.我的应用程序如何在用户的计算机上检测UAC的状态?
此注册表项应告诉您:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
值 EnableLUA (DWORD)
1
已启用/ 0
或已禁用
但这假设您有权阅读它.
以编程方式,您可以尝试读取用户的令牌并猜测它是否是在启用UAC的情况下运行的管理员(请参阅此处).不是万无一失,但可能会奏效.
这里的问题更多的是"为什么你需要知道" - 它与答案有关.实际上,没有API,因为从操作系统行为的角度来看,重要的是用户是否是管理员 - 他们如何选择保护自己,因为管理员是他们的问题.