explorer.exe
がシステム シェルとして実行されることを確認する必要があります。私がする必要があるのは:
- 現在のシェル (
Winlogon\Shell
) を上書きします。explorer.exe
- 実行
explorer.exe
(シェルとして) - 現在のシェルを自分のシェルで上書きします。
最後の 2 つのステップの間に競合があります。
- 現在のシェルを自分のシェルですぐに上書きすると、[マイ ドキュメント] ウィンドウしか開きません。
問題は、エクスプローラーがシェルとして初期化されていることを確認するために呼び出すことができるイベント/ミューテックス/コールバックはありますか?
私がなんとかした最善の方法は、次のようなトレイウィンドウを待つことです。
while(!FindWindow("Shell_TrayWnd", NULL)) {
sleep(250);
}
ちょっとずさんなようですが、もっと良い方法はありますか?