るかどうかの判断explorer.exe 運行としてのwindowsシェル?
-
05-09-2019 - |
質問
いることを、確認する必要があり explorer.exe
運行システムとしてのシェルです。今必要なのは:
- 上書きのようにシェル(
Winlogon\Shell
)explorer.exe
- 走
explorer.exe
(シェル) - 上書きのようにシェルを自分の殻をむきます。
との間の最終段階であるレース:
- ま上書き、現在のシェルを自分の殻にも、"My Documents"画面が表示されます。
その質問は、他のイベント/ミューテックス/コールバックで電話を確認することexplorerは初期化されて。
エクスペディアのキャンセには、トレイのようなウィンドウ:
while(!FindWindow("Shell_TrayWnd", NULL)) {
sleep(250);
}
というちょっと雑になり、より良いそうです。
解決
私もこれを行うにしようとしないだろう。あなたは新しいwinsta0デスクトップ(Win32 APIのCreateDesktop)を作成する必要があり、そのデスクトップ上のキオスクアプリケーションを起動し、それに切り替えます。そうすれば、あなたは、エクスプローラを実行し、単独のデフォルトのデスクトップを残し、そしてあなたがする必要がある場合はそれに戻って取得することができます。私たちは、私たちが構築されたキオスクプロジェクトでこれをやって多くの成功を収めています。
他のヒント
(実際には文書化のように)より良い方法は、トップレベルのウィンドウを作成し、「TaskbarCreated」の放送を待つだろう。その方法は、あなたはまた、スリープ()の呼び出しを取り除くます。
放送がここ文書化されています>。
あなたは3つのステップを必要とする理由あなたが説明していない、「キオスクソフトウェア」の説明ではありません。
あなたはlitestepや他のデスクトップ代替ソフトウェアなどのSYSTEM.INIにシェルを設定するだけで試したことがありますか?あなたが前後に切り替える必要があれば、のようなシェルスイッチャーを考えますShellOn のか、 LiteSpawn に、このタスクのために書かれました。
なぜあなたが実行しているプロセスを見ていませんか? それはデフォルトのシェルではないとして、1 explorer.exeのステップの前に、記載されているべきではありません。 ステップ2あなたはそれを起動し、その後、変更、一度使用可能なプロセスのために監視します。
私は、あなたは、.NETフレームワークにされているかどうかわからないが、あなたはStartInfoクラスのイベントであれば、あなたのニーズに十分である必要があります。