Я запускаю новое окно Windows Explorer со следующим кодом, и мне нужно получить HWND окна, желательно как можно раньше (т. Е. До того, как окно будет показано):
char cmdLine[MAX_PATH] = "explorer.exe";
STARTUPINFO si;
PROCESS_INFORMATION pi;
CreateProcess(
NULL,
cmdLine,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&si,
&pi
);
Однакоокно не принадлежит созданному подпроцессу, поэтому получение дескриптора требует нестандартных приемов.До сих пор я пытался открыть окно для каталога со специальным именем (например, %TEMP%\<guid>
) и непрерывно сканировать окна верхнего уровня, пока не будет найдено окно, название которого содержит путь к каталогу.Это явно неоптимально, поэтому я ищу некоторые ноу-хау о том, как сделать это «правильно».Возможно, в инфраструктуре Explorer есть способ сделать это чисто.Заранее спасибо!