Sto utilizzando Qt Creator e faccio fatica a rendere il file .exe
da eseguire come amministratore per impostazione predefinita.Qt (su Windows) impostazione privilegio a "requireAdministrator"
Leggendo tutte le soluzioni on-line ho cercato di mettere questa linea nella mia .pro
di file:
QMAKE_LFLAGS += /MANIFESTUAC:"level='requireAdministrator' uiAccess='false'"
Ma ancora quando posso controllare la mia .exe
(utilizzando il Blocco note) Contiene:
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
Can qualcuno mi dica, come aggiungere requireAdministrator
?
Soluzione temporanea: Finora non sono riuscito a trovare una soluzione, quindi ho effettuato un attacco temporaneo. Ho fatto un .exe
chiamato 'LaunchAnother.exe' che lancerà il mio 'main.exe' utilizzando seguente codice:
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);
}
Ancora in attesa di una soluzione migliore.
QtCreator utilizza la toolchain VC? Stai usando gli switch specifici di VC, quindi se la tua configurazione usa g ++ allora non funzionerà affatto. Ho anche scoperto che potrebbe essere necessario aggiungere 'CONFIG + = embed_manifest_exe' –