怎么在程序中获取最顶层窗口的下一层窗口的句柄(是为了获取本程序外的其他windows程序的窗口句柄,如图片、word或mediaplayer等)

如何在程序中获取最顶层窗口的下一层窗口的句柄(是为了获取本程序外的其他windows程序的窗口句柄,如图片、word或mediaplayer等)
本帖最后由 kevinh531 于 2014-08-01 15:46:45 编辑
使用时双显示器双屏显示
我希望实现的功能是在程序中点击一个“全屏”按钮,然后将当前窗口(最顶层)次一层的窗口移动到第二个显示屏并全屏显示。次一层的窗口是其他windows程序的窗口,如图片、word或mediaplayer等。
由于这些窗口不是我写的程序打开了,无法记录窗口句柄,所以首先需要获取句柄,希望大家提供一些方法?
我试过用先获取顶层GetForegroundWindow,然后GetWindow 或 GetNextWindow 都无法获取正确的次一层窗口句柄。

我可以先将次一层窗口完全拖入第二个显示屏,想问问有没有获取第二个显示屏中最顶层窗口句柄的方法?
------解决方案--------------------
FindWindow
------解决方案--------------------
windows有现成的API,忘了是啥了,你可以搜索一下
------解决方案--------------------
枚举窗口然后自己找
------解决方案--------------------
用 FindWindow 来获得顶层窗口句柄(根据标题、窗口类来搜索)
得到句柄后用 GetNextWindow 来查询下一个窗口句柄
都查询出来后先保存下来

然后使用函数 EnumDisplayMonitors 来获取当前所有显示设备的数据
其中需要你提供一个回调函数,系统会将显示器信息“输出”到回调函数中

这时你在回调函数中将需要显示到该显示器的窗口移动到该显示器中(回调函数中所提供的一个矩形范围,就是该显示器的工作区域,其实所有显示器都共用一个相同的矩形,只不过每个显示器被系统划分开一个个独立的矩形而已)
移动到该矩形范围后,再将该窗口最大化显示,则窗口就会自动满屏占满该显示器

http://bbs.csdn.net/topics/60319257
这里有一个简单的例子,我刚才搜索到的