6

私は Qt Creator を使用しており、.exeファイルをデフォルトで管理者として実行するのに苦労しています。

.proオンラインですべてのソリューションを読んで、ファイルに次の行を入れようとしました:

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

しかし、まだ.exe(メモ帳を使用して)確認すると、次のものが含まれています。

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

誰かが教えてくれますか、追加する方法はrequireAdministrator

一時的な解決策: 今まで解決策が見つからなかったので、一時的なハックを行いました。.exe次のコードを使用して「main.exe」を起動する「LaunchAnother.exe」という名前を作成しました。

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

より良い解決策をまだ待っています。

4

1 に答える 1

2

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

アプリケーション マニフェスト (UAC) を作成して埋め込む

方法: C/C++ アプリケーション内にマニフェストを埋め込む

マニフェスト ファイルの例

もう 1 つのオプションは、.res ファイルを作成し、次に示すようにマニフェスト ファイルをポイントすることです。

mingw ツールのみでマニフェストを dll に埋め込む方法

それが役立つことを願っています。

于 2012-11-26T16:40:50.317 に答える