如何检查我的C ++程序是否以管理员权限运行?
我是以这种方式为批次
做的set fold=%random%
mkdir "C:\Windows\%fold%"
if errorlevel 1 (
goto Tag1
)
goto Tag2
但是我不能对C ++使用相同的东西,因为我不知道如何将变量1的%random%的值转移到%fold%的变量2,而且,我不知道是否存在错误级别C ++。
在这种情况下,有人可以帮助我,还是有办法检查我的程序是否以管理员权限运行?
答案 0 :(得分:5)
您可以使用OpenProcessToken / GetTokenInformation对:https://stackoverflow.com/a/8196291/3235496
另一种选择是AccessCheck功能。
最后IsUserAnAdmin功能:它很简单但已弃用(可从Windows XP / Windows Server 2003获得)。
无论如何,你为什么检查?尝试可能是一个很好的策略:如果它有效,您就拥有足够的权限(可能是管理员权限的一个子集)。
PS
出于好奇......批处理文件的C ++翻译应该基于CreateDirectory函数。如果失败,请通过GetLastError检查扩展错误信息(返回代码ERROR_ACCESS_DENIED
)。但是,正如David Heffernan所说,将文件夹喷射到系统目录中并不是一个好主意。
答案 1 :(得分:-1)