MFC 如何通过子进程句柄获取子窗口句柄

一只小水鱼 2013-09-30 03:04:52
如题。
我在MFC中用CreateProcess启动一个外部程序,这个程序是写好的、无法修改的

我现在想用SendMessage()的方式给这个外部程序发送WM_CLOSE信号,

但是这个函数需要有外部程序的窗口句柄。

我只有从CreateProcess函数取得的外部程序的进程句柄,

我要怎么样才能获得外部程序的窗口句柄?

我知道要用FindWindowEx()函数,但是函数参数该怎么填?
...全文
517 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
encoderlee 2013-09-30
  • 打赏
  • 举报
回复
另外CreateProcess好像返回目标线程ID吧,那样就可以直接对该ID调用EnumThreadWindows
encoderlee 2013-09-30
  • 打赏
  • 举报
回复
你用VC自带的SPY++工具就能看到外部程序的窗口标题和窗口类名了
真相重于对错 2013-09-30
  • 打赏
  • 举报
回复
一只小水鱼 2013-09-30
  • 打赏
  • 举报
回复
引用 1 楼 VisualEleven 的回复:
FindWindow(NULL,_T("xxx")); // 第二个参数传递想要找的窗口个标题
问题是 窗口标题在哪里找? 我那个是外部程序,网上下载的,窗口标题怎么获取?
Eleven 2013-09-30
  • 打赏
  • 举报
回复
也可以EnumWindows枚举窗口得到HWND,利用GetWindowThreadProcessId得到进程的ID,然后与你PROCESS_INFORMATION中pi的ID相对比,相等即找到了。
Eleven 2013-09-30
  • 打赏
  • 举报
回复
FindWindow(NULL,_T("xxx")); // 第二个参数传递想要找的窗口个标题

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧