ウィンドウキャプチャの一例です。
詳しくは
http://chokuto.ifdef.jp/advanced/capturewindow.html
後は適当に。。。
; ======== API 関数の定義 ========
#uselib "user32.dll"
#func GetDC "GetDC" int
#func ReleaseDC "ReleaseDC" int,int
#func GetForegroundWindow "GetForegroundWindow"
#func GetClientRect "GetClientRect" int,int
#func GetWindowRect "GetWindowRect" int,int
#func MoveWindow "MoveWindow" int,int,int,int,int,int
#func SetWindowLong "SetWindowLongA" int, int, int
#func _EnableWindow "EnableWindow" int,int
;#cfunc GetWindowLong "GetWindowLongA" int, int
#define objctl(%1,%2) _EnableWindow objinfo_hwnd(%1),%2
#uselib "gdi32.dll"
#func BitBlt "BitBlt" int,int,int,int,int,int,int,int,int
button "capture",*cap
mes "キャプチャーしたいウィンドウをアクティブにしてから「capture」ぼたんを押す。”
stop
*cap
gosub *preget
BitBlt hdc2, 0, 0, sx, sy, hdcActive, 0, 0, $CC0020 ;buffer2にActWindowをcopy
wx=ginfo_winx :wy=ginfo_winy
screen 1,wx,wy
gcopy 2,0,0,wx,wy
title "キャプチャー画面"
gsel 0,1
stop
*preget
gsel 0, -1
buffer 2,1,1
wait 50
GetForegroundWindow
hwndActive = stat
dim rectw, 4
GetWindowRect hwndActive, varptr(rectw)
wx = rectw(2) - rectw(0) : wy = rectw(3) - rectw(1)
dim rect, 4 ; RECT構造体
GetClientRect hwndActive, varptr(rect);FGWのクライアントエリア取得
sx = rect(2) - rect(0) : sy = rect(3) - rect(1)
if sx=0:cy=0:else:cy=sy*320/sx
if cy>265:cy=265
buffer 2, sx, sy, 0;現在の描画先バッファウィンドウをコピー先として初期化
GetDC hwndActive
hdcActive = stat;ディバイスコンテキストのハンドル取得(hdc)
hdc2=hdc ;buff2のhdc
return