0

このコマンドを実行すると:

C:\WINDOWS\explorer.exe "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{2227A280-3AEA-1069-A2DE-08002B30309D}"

Windows シェルから ( Windows+経由Rで)、プリンターとファックスが新しい explorer.exeプロセスで開きます。(したがって、2つの実行中のexplorer.exeプロセスがあります。)

私が実行した場合:

Process.Start(@"C:\WINDOWS\explorer.exe", @"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\" + 
                                          @"::{21EC2020-3AEA-1069-A2DD-08002B30309D}\" + 
                                          @"::{2227A280-3AEA-1069-A2DE-08002B30309D}");

C#プログラムから、プリンターとファックスも開きますが、メインexplorer.exeプロセス(タスクバーなどを含むWindowsシェルを実行するプロセス)の子プロセスとして開きます。

explorer.exeC# からプリンターとファックス ウィンドウで2 番目のプロセスを開始するにはどうすればよいですか?

4

1 に答える 1

0

最初の考え-フォルダオプション([整理]->[フォルダと検索オプション]->[表示]タブ)の[別のプロセスでフォルダウィンドウを起動する]を確認します。これはデフォルトではチェックされていないため、これを「チェック」してC#コードを再試行してください。

この設定がShellExecute関数に影響することは知っていますが、.NETのDiagnostic名前空間が同じルートを使用しているかどうかはわかりません。

ShellExecute(handle、 "explore"、、NULL、NULL、SW_SHOWNORMAL);


2番目の考え-同様の問題はstackoverflowですでに議論されており、この投稿はあなたにいくつかのアイデアを与えるかもしれません。

スポーンプロセスの子になることなく、新しいプロセスを開始します

于 2012-02-17T16:10:24.577 に答える