1

管理者として実行を要求するダイアログボックスなしで Windows 7 で起動したい C# 実行可能ファイルがあります。

Process testApp = new Process();
testApp.StartInfo.FileName = "C:\\Program Files\\Common Files\\testApp.exe";
testApp.Start();

また、両方のプログラムの minfest を作成します。testApp.exe の app.manifest と testApp.exe を起動するプログラムの app.manifest を作成し、両方のマニフェストの次の行を次のように変更します。

requestedExecutionLevel level="requireAdministrator" uiAccess="false"

testApp.exe をダブルクリックして実行すると、testApp.exe プログラムがクラッシュしますが、管理者として実行すると正常に動作し、クラッシュしません。したがって、この動作は、testApp.exe を起動するプログラムを実行したときにも同じように発生し、testApp.exe がクラッシュします。

ここで何か間違ったことをしなければなりません。Visual Studio 2010 によって生成された既定の名前を使用しているため、マニフェストの名前を変更する必要がありますか?

ありがとう。

4

3 に答える 3

2

実際には、使用する必要があるのは

requestedExecutionLevel level="requireAdministrator" uiAccess="false"

管理者として実行したい場合のみ。

これを次のように変更します。

requestedExecutionLevel level="asInvoker" uiAccess="false"

そして、あなたは行く準備ができています。

于 2012-09-23T09:12:57.027 に答える
0

info.Verb = "runas"; を使用します。// 管理者として実行を提供

于 2014-03-26T12:22:29.313 に答える