2012-09-05 24 views
5

Qt Creator kullanıyorum ve .exe dosyasını varsayılan olarak yönetici olarak çalıştırmaya çalışıyorum. İçerdiğiQt (Windows'ta) "requireAdministrator" için ayrıcalık düzeyini ayarlama

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

Ama yine benim .exe (kullanarak not defteri) kontrol ederken:

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

Can tüm çözümlerle Okuma

çevrimiçi benim .pro dosyasında bu satırı koymak için çalıştı birisi bana anlatır, requireAdministrator nasıl eklenir?

Geçici Çözüm: Şimdiye kadar bir çözüm bulamadım bu yüzden geçici bir kesmek yaptım. Hala bir iyi bir çözüm bekleyen

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şağıdaki kodu kullanarak benim 'Main.exe' başlatacak bir .exe denilen 'LaunchAnother.exe' yaptı.

+1

QtCreator'ınız VC takım zincirini kullanıyor mu? VC'ye özgü anahtarları kullanıyorsunuz, bu yüzden yapılandırmanız g ++ kullanıyorsa, hiç çalışmaz. Ayrıca, 'CONFIG + = embed_manifest_exe' eklemeniz gerekebileceğini de buldum –

cevap