2012-09-05 13 views
5

私はQt Creatorを使用しており、デフォルトで管理者として.exeファイルを実行するのに苦労しています。それは含まれてい特権レベルを "requireAdministrator"に設定するQt

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

しかし、それでもまだ、私は私の.exe(使用してメモ帳)をチェックする場合:

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

ことができるすべてのソリューションを通じて読む

はオンライン私は私の.proファイルに次の行を入れてみました誰か教えてください、requireAdministratorを追加するには?

一時的な解決策: これまで私は解決策を見つけることができなかったので、私は一時的なハッキングを行いました。

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

はまだ良い解決策を待っている:私は、次のコードを使用して、私の「MAIN.EXE」を起動します 「LaunchAnother.exe」と呼ばれる.exeを作りました。

+1

QtCreatorはVCツールチェーンを使用していますか? VC固有のスイッチを使用しているので、設定がg ++を使用している場合は、まったく動作しません。また、 'CONFIG + = embed_manifest_exe'を追加する必要があるかもしれないことも発見しました –

答えて

2

コンパイル後にマニフェストファイルをmt.exeを使用して埋め込むことができます。

Create and Embed an Application Manifest (UAC)

How to: Embed a Manifest Inside a C/C++ Application

An example manifest file

別のオプションは、.RESファイルを作成し、ここに示すように、マニフェストファイルにそれを指すようです。

How to embed a manifest into a dll with mingw tools only

願って助けてください。

関連する問題