请问:已经获得一进程的句柄,根据这个句柄怎样获得该进程下的所有窗口句柄(假设该进程是窗口程序)。

whiky 2003-12-12 06:01:57
请问:已经获得一进程的句柄,根据这个句柄怎样获得该进程下的所有窗口句柄(假设该进程是窗口程序)。
...全文
10 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
flyelf 2003-12-20
EnumThreadWindows
  • 打赏
  • 举报
回复
koolfoo 2003-12-19
上面的代码有点误。
下面的解释一下。
HWND MyWndlist[256];
int wndListCount = 0;
while(GetParent(pWnd)!=NULL)//得到进程的主窗口
pWnd = GetParent(pWnd);
pWnd就是进程的主窗口的。

再EnumWidnows(callBackFunc,0)遍历当前系统的所有窗口列表,
void callBackFunc(hWnd,lparam)
{
HWND xWnd = GetWindow(hWnd,GW_OWNER);
while(GetParent(xWnd)!=NULL)
if(xWnd==pWnd)
{
//这就是你想要的了,把它记录下来。
MyWndList[wndListCount++] = xWnd;
}
xWnd = GetParent(xWnd);//继续寻找它的父窗口句柄
}
  • 打赏
  • 举报
回复
koolfoo 2003-12-19
while(GetParent(pWnd)!=NULL)//得到进程的主窗口
pWnd = GetParent(pWnd);
在EnumWidnows(callBackFunc,0)
void callBackFunc(hWnd,lparam)
{
HWND xWnd = GetWindow(hWnd,GW_OWNER);
while(GetParent(xWnd)!=NULL)
if(xWnd==pWnd)
{
//这就是你想要的了。
}
}
  • 打赏
  • 举报
回复
whiky 2003-12-12
请告诉我一些方法,越多越好。
  • 打赏
  • 举报
回复
相关推荐
发帖
进程/线程/DLL
加入

1.5w+

社区成员

VC/MFC 进程/线程/DLL
申请成为版主
帖子事件
创建了帖子
2003-12-12 06:01
社区公告
暂无公告