2012-09-05 17 views
5

Estoy usando Qt Creator y tengo problemas para hacer que el archivo .exe se ejecute como administrador de manera predeterminada.Qt (en Windows) configuración de nivel de privilegio para "requireAdministrator"

Lectura a través de todas las soluciones en línea traté de poner esta línea en mi .pro archivo:

QMAKE_LFLAGS += /MANIFESTUAC:"level='requireAdministrator' uiAccess='false'" 

Pero aún cuando compruebo mi .exe (usando el bloc de notas) que contiene:

<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel> 

Puede alguien dime, ¿cómo agregar requireAdministrator?

Solución temporal: Hasta ahora no he podido encontrar una solución, así que hice un hack temporal. Hice una llamada .exe 'LaunchAnother.exe' que pondrá en marcha mi 'main.exe' usando siguiente código:

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); 
} 

A la espera de una solución mejor.

+1

¿Tu QtCreator está usando VC toolchain? Está utilizando conmutadores específicos de VC, por lo que si su configuración utiliza g ++, no funcionará en absoluto. También encontré que es posible que deba agregar 'CONFIG + = embed_manifest_exe' –

Respuesta

Cuestiones relacionadas