1

始める前に、UAC のプログラミングに関する知識がほとんどないことをお詫びします。そうは言っても…</p>

まったく別のプログラムの setup.exe を起動する ac# アプリケーションがあります。その主な目的は、その 2 番目のプログラムが UAC の下で実行できるようにすることです。簡単に言えば、昇格したコマンド プロンプトでそのプログラムの setup.exe ファイルを実行します。私はその 2 番目のプログラムを制御できないため、UAC 互換にすることはできません。Vista が最初にリリースされたときにプログラムを作成しましたが、UAC 情報はほとんど見つかりませんでした。setup.exe ファイルをこの方法で実行すると、実際に機能し、UAC をオンにしてプログラムを実行できることに注意してください。しかし、私のプログラムの一部では、「requireAdministrator」を実行レベルとして「theirapp.exe.manifest」ファイルも追加しています。したがって、私の質問はこれです。最終的に実行しようとしているプログラムが管理されていないアプリケーション (CBuilder C++) である場合、そのファイルが必要ですか? 途中で、マニフェスト ファイルが必要だと思いました。

ありがとう

編集: 要約すると... UAC の下で管理されていないプログラムを実行するには、マニフェスト ファイルが必要ですか?

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel
        level="requireAdministrator"
        uiAccess="false"/>
    </requestedPrivileges>
  </security>
</trustInfo>

編集: 他のプログラム setup.exe を実行するための私の主な方法

private void RunElevated()
{
    ProcessStartInfo processInfo = new ProcessStartInfo("cmd.exe", @"/C " + AppDomain.CurrentDomain.BaseDirectory + @"setup.exe");
    processInfo.Verb = "runas";

    try
    {
        Process.Start(processInfo);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message.ToString());
    }
}
4

2 に答える 2

3

Visual C++ では、マニフェスト オプション (リンカー設定の一部) の下にオプションがあります。

Visual Studio 11 (ベータ版) の UAC 設定

于 2012-04-11T16:32:06.060 に答える
0

このリンクは私の質問に答えます。管理されていない DLL のマニフェスト ファイルを参照しているという事実が、検索の妨げになったと思います。

于 2012-04-17T21:45:30.220 に答える