WindowsXPで管理者として別のアプリを実行する方法
-
12-10-2019 - |
質問
説明されているように、アプリケーションマニフェストファイルを使用しました ここ 私のアプリケーションの一部を、高度な特権で実行していること(必要です)。
そのため、必要に応じて、メインプログラムはProcess.startを使用して小さなアセンブリを呼び出します。
しかし、Windows XPで同じことをするにはどうすればよいですか?
XPはこのマニフェストを無視し、現在のユーザーコンテキストで小さなアセンブリを実行しているようです。
解決
次のコードから ここ 私が必要なことだけをします:
ProcessStartInfo processStartInfo = new ProcessStartInfo("path", "args");
processStartInfo.Verb = "runas";
using (Process process = new Process())
{
process.StartInfo = processStartInfo;
process.Start();
process.WaitForExit();
}
したがって、実際には、processstartinfo.verbに「ranas」を設定する必要があります。添付されたマニフェストにより、このコードはWindows XP、Vista、7で正常に動作するようになりました。
アップデート:
参照してください 同様の質問に対するこの答え. 。これは基本的に同じコードであり、引数も使用しています。
他のヒント
使用できます runas
指図。
Windows XPにはUACがありません。
あなたは電話する必要があります Process.Start
管理者の特権を持つユーザーのログイン資格情報を使用します。
所属していません StackOverflow