我使用以下代码启动一个新的Windows资源管理器窗口,并且需要获取窗口的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>
),并连续扫描顶级窗口,直到找到其标题包含目录路径的窗口。这显然不是最理想的,所以我正在寻找一些如何做到这一点的技术诀窍&#34;正确&#34;。也许Explorer基础架构提供了干净利落的方法。提前谢谢!