c++ - 在不属于创建的子进程的窗口上获取 HWND
问题描述
我正在使用以下代码启动一个新的 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>
)的目录,并不断扫描顶级窗口,直到找到标题包含目录路径的窗口。这显然不是最理想的,所以我正在寻找一些关于如何“正确”做到这一点的诀窍。也许资源管理器基础设施具有干净利落的方式。先感谢您!
解决方案
推荐阅读
- c - 为什么根本没有内联函数符号?
- java - Java - 如何创建一个可以处理特定 [restricted] 类型的泛型对象的类?
- http-headers - 如何在 SAP Hybrid Application Toolkit 中将 Content-ID 标头设置为正确的请求?
- reactjs - React:如何将登录/注册页面与其他应用程序内容分开
- c++ - 为每个登录用户查找活动应用程序
- objective-c - audit_token_to_pid 未定义符号
- c++ - 如何在 C++ 中声明类的外部成员?
- java - Java单例,它是如何工作的?
- android - 模拟 Android Snackbar 以进行 Mockk 单元测试
- python - 如何解决三个参数并使用 scipy.minimize 获得误差平方最小化?