我正在使用Qt Creator并且努力使.exe文件默认以管理员身份运行.
通过在线阅读所有解决方案,我试着将这一行放在我的.pro文件中:
QMAKE_LFLAGS += /MANIFESTUAC:"level='requireAdministrator' uiAccess='false'"
Run Code Online (Sandbox Code Playgroud)
但是当我检查我的.exe(使用记事本)时,它包含:
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
Run Code Online (Sandbox Code Playgroud)
有人能告诉我,如何添加requireAdministrator?
临时解决方案:
直到现在我找不到解决方案所以我做了一个临时的黑客攻击.我做了一个.exe名为'LaunchAnother.exe',它将使用以下代码启动我的'main.exe':
SHELLEXECUTEINFO shExInfo = {0};
shExInfo.cbSize = sizeof(shExInfo);
shExInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
shExInfo.hwnd = 0;
shExInfo.lpVerb = _T("runas"); // Operation to perform
shExInfo.lpFile = _T("main.exe"); // Application to start
shExInfo.lpParameters = ""; // Additional parameters
shExInfo.lpDirectory = 0;
shExInfo.nShow = SW_SHOW;
shExInfo.hInstApp = 0;
if (ShellExecuteEx(&shExInfo))
{
WaitForSingleObject(shExInfo.hProcess, INFINITE);
CloseHandle(shExInfo.hProcess);
}
Run Code Online (Sandbox Code Playgroud)
还在等待更好的解决方案.
您可以在编译后使用 mt.exe 嵌入清单文件。
另一种选择是创建一个 .res 文件并将其指向您的清单文件,如下所示:
希望有帮助。
| 归档时间: |
|
| 查看次数: |
3190 次 |
| 最近记录: |