16

これは機能します:

Process.Start("control", "/name Microsoft.DevicesAndPrinters");

しかし、これはそうではありません:(コマンドプロンプトを開くだけです)。

ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.Arguments = "control /name Microsoft.DevicesAndPrinters";
Process.Start(info);

なんで?

(はい、私はそれらが同一ではないことを知っています。しかし、2番目のものは「機能するはずです」。)

4

3 に答える 3

36

これは、スイッチが引数として渡されたプロセスを実行することをcmd.exe期待しているためです。/K以下のコードを試してください

ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.Arguments = "/K control /name Microsoft.DevicesAndPrinters";
Process.Start(info);

編集:上記に変更されました/K。コマンドの実行後に閉じる/C場合は、switchを使用できます。cmd.exe

于 2012-12-24T10:41:32.610 に答える
7

コマンドを実行するには、/cまたは/kスイッチ(のオプション)が必要です。cmd.exe試す:

ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.Arguments = "/c control /name Microsoft.DevicesAndPrinters";
Process.Start(info);
于 2012-12-24T10:44:50.330 に答える
1

これを試してみてください

ProcessStartInfo info = new ProcessStartInfo("control");
info.Arguments = "/name Microsoft.DevicesAndPrinters";
Process.Start(info);
于 2012-12-24T10:37:45.123 に答える