happytc 发表于 2011-2-10 02:14:00

如何写滚屏截图,给个思路

正在写的程序,全屏/窗口(控件)/区域截图都写好了,就差滚屏截图了。
现在还没有找到好的实现方式,请各路大侠给点思路/方法

当然直接给出代码就更谢了

xxoojoeooxx 发表于 2011-2-10 02:58:21

本帖最后由 xxoojoeooxx 于 2011-2-10 03:03 编辑

截图
传送pagedown按键或滑鼠滚轮
截图
.
.
.
再组合起来
可能有时间的话再写写看

happytc 发表于 2011-2-10 05:18:31

只想用户在拖动滚动条/滚轮/Pagedown键时,就截屏。应该的思路是不停地截屏,然后拼接起来。
但具体怎么实现的,还没有找到方法。

happytc 发表于 2011-2-10 09:17:58

有了点思路了,如下的代码,就可以最简单地实现拼接截图。大家再给点主意/建议/代码嘛Local $hWnd, $hDDC, $HDDC1, $hCDC1, $hBMP1, $iW, $iH

$iW = 300
$iH = 300
$hWnd = _WinAPI_GetDesktopWindow()
$hDDC = _WinAPI_GetDC($hWnd)
$GUIHandle = GUICreate("Stitched", $iW, $iH * 2, 300, 300)
GUISetState()

$hDDC1 = _WinAPI_GetDC($GUIHandle)
$hCDC1 = _WinAPI_CreateCompatibleDC($hDDC1)
$hBMP1 = _WinAPI_CreateCompatibleBitmap($hDDC1, $iW, $iH * 2)
_WinAPI_SelectObject($hCDC1, $hBMP1)

_WinAPI_BitBlt($hDDC1, 0, 0, $iW, $iH, $hDDC, 0, 0, $SRCCOPY)   
_WinAPI_BitBlt($hDDC1, 0, $iH, $iW, $iH, $hDDC, 0, 0, $SRCCOPY)

_WinAPI_BitBlt($hCDC1, 0, 0, $iW, $iH, $hDDC, 0, 0, $SRCCOPY)   
_WinAPI_BitBlt($hCDC1, 0, $iH, $iW, $iH, $hDDC, 0, 0, $SRCCOPY)

_WinAPI_ReleaseDC($hWnd, $hDDC)
_WinAPI_ReleaseDC($GUIHandle, $hCDC1)
_WinAPI_DeleteDC($hCDC1)

_ScreenCapture_SaveImage("F:\abc.png", $hBMP1)   
_WinAPI_DeleteObject($hBMP1)
       

happytc 发表于 2011-2-13 22:53:49

自己顶下,看看大家有没有好的方式达到目的。

fox_hazard 发表于 2011-2-14 10:22:39

呵呵,没有测试过,不过看代码应该是属于比较简单的了
页: [1]
查看完整版本: 如何写滚屏截图,给个思路