以文本方式查看主题

-  搭建论坛  (http://bbs.diylsoft.com:8118/starforum/index.asp)
--  经验交流  (http://bbs.diylsoft.com:8118/starforum/list.asp?boardid=5)
----  [求助]如何截取真正意义的“活动窗口”图片  (http://bbs.diylsoft.com:8118/starforum/dispbbs.asp?boardid=5&id=22469)

--  作者:qys1000
--  发布时间:2008-12-22 13:38:47
--  [求助]如何截取真正意义的“活动窗口”图片

搭建的[屏幕截取]构件“截取活动窗口”功能只能实现当程序自身窗口为当前活动窗口时的截图,而当屏幕活动窗口为其它可执行程序的窗口时,就不截图。

我用调用 API 的方法实现该功能,函数如下:

GetForegroundWindow

声明
Declare Function GetForegroundWindow Lib "user32" Alias "GetForegroundWindow" () As Long
说明
获得前台窗口的句柄。这里的“前台窗口”是指前台应用程序的活动窗口
返回值
Long,前台窗口的句柄

GetWindowRect

声明
Declare Function GetWindowRect Lib "user32" Alias "GetWindowRect" (ByVal hwnd As Long, lpRect As RECT) As Long
说明
获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
返回值
Long,非零表示成功,零表示失败。
参数表
参数 类型及说明
hwnd Long,想获得范围矩形的那个窗口的句柄
lpRect RECT,屏幕坐标中随同窗口装载的矩形

第一个函数调用取得前台应用程序的活动窗口句柄,第二个函数不会用请高手帮忙。

问题解决,如下

[

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:


--  作者:qys1000
--  发布时间:2009-3-31 21:02:48
--  

天地无惧你好

这个问题我已解决,今晚我有事出去,明天中午前给你传上来


--  作者:qys1000
--  发布时间:2009-4-1 10:29:25
--  

附件已上传,见一楼


--  作者:development
--  发布时间:2009-4-1 10:31:54
--  

看一看,学习!


--  作者:qys1000
--  发布时间:2009-4-1 11:09:55
--  
忘了说明一下,按下 shift+k 键截取一帧