I need to make sure that explorer.exe
runs as a system shell. What I need to do is:
- Overwrite the current shell (
Winlogon\Shell
) withexplorer.exe
- Run
explorer.exe
(as shell) - Overwrite the current shell with my own shell.
Between the last two steps is a race:
- If I overwrite the current shell with my own shell too quickly, only "My Documents" window opens.
So the question is, are there any events/mutexes/callbacks I can call to make sure that explorer is initialized as shell?
The best I managed to do is to wait for the tray window like:
while(!FindWindow("Shell_TrayWnd", NULL)) {
sleep(250);
}
Which seems kinda sloppy, is there a better way?