0

DeviceManagerを開くプロセスを実行するexeがあります。しかし、残念なことに、「はい」または「いいえ」を提供するための確認を求められます。これは、ユーザーの入力を長時間待ち、実行を続行しません。

これを取り除く方法は?これでEXEの実行を一時停止したくないので、確認を再度提供したくありません。

StartInfo.CreateWindow = false別のcmdウィンドウで開始するためだけなので、これには当てはまりません。

以下のコード:

Process p = new Process();
p.StartInfo.FileName = "devcon.exe";
p.StartInfo.CreateNoWindow = false;
p.Start();
4

2 に答える 2

2

表示されているメッセージ ボックスは、Vista 以降に実装されたUAC (ユーザー アカウント制御) です。

プロセスを起動する前に、プログラムで資格情報を提供できる可能性があるボックスをバイパスするには、テストできませんが、次のようなものです。

var processInfo = new ProcessStartInfo 
{ 
    FileName = "devcon.exe", 
    UserName = "Administrator", 
    Domain = "yourdomain or leave blank", 
    Password = adminpassword, 
    UseShellExecute = false,
}; 
Process.Start(processInfo);

それ以外の場合、ユーザーは管理者権限またはパスワードを持っている必要があります!

もう 1 つのオプションは、UAC を無効にすることです。ただし、それでは、ユーザーが通常はできないことを行うことはできません。おそらく、プロセスを管理者として実行しないと変更を加えることができないことがわかります。

于 2012-06-20T08:30:10.140 に答える
0

親プロセスは管理者アカウントで実行する必要があります。また、すべてのコードを表示してください。

于 2012-06-20T07:23:46.190 に答える