HSP Tips / HSPモジュール

ウィンドウをキャプチャする


説明

 指定したハンドルのウィンドウの画面をキャプチャし、HSPウィンドウにコピーします。
 枠の考慮も一応スクリプトに入れていますが、バグがあるかもしれません。




HSPスクリプト


//Created by As<akicansoft@gmail.com>
#module
#uselib "gdi32"
#func BitBlt "BitBlt" sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr
#uselib "user32"
#func GetWindowDC "GetWindowDC" sptr
#func ReleaseDC "ReleaseDC" sptr,sptr
#func GetWindowRect "GetWindowRect" int, sptr
#func ScreenToClient "ScreenToClient" int,sptr

//ウィンドウの画面をキャプチャする
//_hnd 撮影するウィンドウのハンドル
//_flag 枠のサイズを考慮する
#deffunc capture int _hnd,int _flag
GetWindowDC _hnd
ghdc=stat
mref BMSCR,67
dim point,2
dim rect,4
GetWindowRect _hnd, varptr(rect)
point.0=rect.2-rect.0
point.1=rect.3-rect.1
if flag=1{
	ScreenToClient _hnd, varptr(point)
}

BitBlt BMSCR(4),0,0,point.0,point.1,ghdc,0,0,$C00020
ReleaseDC _hnd,ghdc
redraw 1
return
#global

#if 1
capture hwnd,1
#endif