Dra*_*121 0 c++ winapi admin batch-file elevated-privileges
如何检查我的C++程序是否以管理员权限运行?
我是以这种方式批量做的
set fold=%random%
mkdir "C:\Windows\%fold%"
if errorlevel 1 (
goto Tag1
)
goto Tag2
Run Code Online (Sandbox Code Playgroud)
但我不能对C++使用相同的东西,因为我不知道如何将变量1的%random%的值传递给%fold%的变量2,而且,我不知道C++是否存在错误级别.
在这种情况下,任何人都可以帮助我,或者有没有办法检查我的程序是否以管理员权限运行?
您可以使用OpenProcessToken/GetTokenInformation对:https://stackoverflow.com/a/8196291/3235496
另一种方法是AccessCheck功能.
最后是IsUserAnAdmin函数:它很简单但已弃用(可从Windows XP/Windows Server 2003获得).
无论如何,你为什么检查?尝试可能是一个很好的策略:如果它有效,您就拥有足够的权限(可能是管理员权限的一个子集).
PS
出于好奇......批处理文件的C++转换应该基于CreateDirectory函数.如果失败,请通过GetLastError检查扩展错误信息(返回码ERROR_ACCESS_DENIED).但是,正如David Heffernan所说,将文件夹喷射到系统目录中并不是一个好主意.
| 归档时间: |
|
| 查看次数: |
6880 次 |
| 最近记录: |