2012-09-05 20 views
5

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.

+1

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' –

risposta

Problemi correlati