こういうことでしょうか。
キャプチャするウィンドウが最小化している場合には使えません。
#include "user32.as"
#include "gdi32.as"
#module capture
#define NULL 0
#define SRCCOPY 0x00CC0020
#define CAPTUREBLT 0x40000000
//===================================================
//=== 指定ウィンドウのキャプチャ
//===
//=== WindowCapture p1, p2
//===
//=== p1 : キャプチャするウィンドウのタイトル
//=== p2 : ウィンドウID
//===
#deffunc WindowCapture str WindowTitle, int ID
FindWindow NULL, WindowTitle; // 指定されたタイトルのウィンドウハンドルを取得
handle = stat;
dim rect, 4;
GetWindowRect handle, varptr( rect );
sx = rect( 2 ) - rect( 0 ); // ウィンドウサイズ横
sy = rect( 3 ) - rect( 1 ); // ウィンドウサイズ縦
sel = ginfo_sel; // 操作先ウィンドウIDを記憶
buffer ID, sx, sy, 0; // キャプチャするウィンドウサイズでバッファ作成
color 255, 255, 255;
boxf;
GetWindowDC handle; // デバイスコンテキストのハンドル取得
hdchandle = stat;
// バッファに画面コピー
BitBlt hdc, 0, 0, sx, sy, hdchandle, 0, 0, SRCCOPY|CAPTUREBLT;
ReleaseDC handle, hdchandle; // デバイスコンテキスト解放
gsel sel; // 操作先ウィンドウを戻す
return;
#global
screen 0, 640, 480, 0;
gmode 1;
*main
await 200;
WindowCapture "キャプチャするウィンドウのタイトル", 1;
pos 0, 0;
gzoom sx@capture / 2, sy@capture / 2, 1, 0, 0, sx@capture, sy@capture;
goto *main