我需要确保它explorer.exe
作为系统外壳运行。我需要做的是:
Winlogon\Shell
用_explorer.exe
- 运行
explorer.exe
(作为外壳) - 用我自己的 shell 覆盖当前 shell。
最后两步之间是一场比赛:
- 如果我用自己的 shell 过快地覆盖当前 shell,则只会打开“我的文档”窗口。
所以问题是,是否有任何事件/互斥体/回调我可以调用以确保资源管理器被初始化为 shell?
我设法做的最好的事情是等待托盘窗口,例如:
while(!FindWindow("Shell_TrayWnd", NULL)) {
sleep(250);
}
看起来有点草率,有没有更好的方法?