在我開始之前,讓我對我幾乎不存在的編程UAC知識表示歉意。這說...非託管代碼需要清單文件嗎?
我有一個C#應用程序,啓動setup.exe完全不同的程序。其主要目的是幫助第二個項目在UAC下運行。所以簡而言之,它在提升的命令提示符下運行該程序的setup.exe文件。我無法控制第二個程序,因此將它與UAC兼容不是一種選擇。當Vista首次發佈時,我寫了我的程序,並且找不到UAC信息。現在請記住,以這種方式運行setup.exe文件實際上可行,並且允許程序在UAC上運行。但是我的程序的一部分還添加了一個「theirapp.exe.manifest」文件,其中帶有「requireAdministrator」作爲執行級別。所以我的問題是,我最終試圖運行的程序是否爲非託管應用程序(CBuilder C++)時甚至需要該文件。我一直在相信一個清單文件是需要的。但現在我被告知他們只爲.NET應用程序工作。
感謝
編輯:概括起來......是運行在UAC下一個非託管程序所需的manifest文件?
<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());
}
}
清單文件* *不適用於託管(.NET)應用程序。這兩個概念與彼此無關。 – 2012-04-11 16:32:53