/* デスクトップキャプチャモジュール HSP3.0対応 製作者:nano Webサイト:「あまやどり」http://minus273.s27.xrea.com/ [使用条件] 特に制限事項はありません。ご自由にお使いください。 このソフトを使用することによって発生したいかなる損害にも 作者は責任を負わないものとします。 各自の責任において使用してください。 [使い方] ◇このファイルを DesktopCapture.as というファイル名で保存して このモジュールを使いたいスクリプトファイルと同じフォルダに入れる。 ◇スクリプトの最初のほうに #include "DesktopCapture.as" と書く。 ◇キャプチャした画像を描画したいウインドウをgesl命令で描画先に指定してから、 以下のように引数を与えてDesktopCapture命令を使う。 DesktopCapture xbegin, ybegin, xsize, ysize xbegin: キャプチャ範囲の左上の x 座標 ybegin: キャプチャ範囲の左上の y 座標 xsize: キャプチャする x サイズ ysize: キャプチャする y サイズ ◇そのあと redraw 1 とした時点で初めて反映されます。 [使用例] DesktopCapture 0, 0, ginfo_dispx, ginfo_dispy とすると、現在の描画先ウインドウに デスクトップ全体をキャプチャして描画します。 ※このファイルの末尾にあるサンプルスクリプトも参考にしてください。 [参考ページ] Advanced HSP - スクリーンキャプチャ http://yokohama.cool.ne.jp/chokuto/advanced/capturescreen.html [更新履歴] 2006-04-20 とりあえず製作。 2006-05-04 バッファウインドウのIDを自由に設定できるようにした。 2006-06-14 1.00 InitDesktopCapture命令を無くして、ウインドウIDも DesktopCapture命令でそのつど指定するようにした。 サイトで公開する。 */ #module #uselib "gdi32.dll" #func CreateDC "CreateDCA" sptr,sptr,sptr,int #func DeleteDC "DeleteDC" int #func BitBlt "BitBlt" int,int,int,int,int,int,int,int,int #deffunc DesktopCapture int xbegin, int ybegin, int xsize, int ysize ;デスクトップを取得して、現在の描画先ウインドウに描画。 ; デスクトップ画面のデバイスコンテキスト CreateDC "DISPLAY", 0, 0, 0 hdcScreen = stat ; デスクトップ画面の画像をコピー BitBlt hdc, 0, 0, xsize, ysize, hdcScreen, xbegin, ybegin, $CC0020 ; デバイスコンテキスト削除 DeleteDC hdcScreen return #global /* ;サンプルスクリプト ;この下の行は、他のファイルからこのスクリプトを使う場合は必要です。 ;#include "DesktopCapture.as" screen 0, 640, 480 gsel 0 DesktopCapture 0, 0, 640, 480 ;DesktopCapture 0, 0, ginfo_dispx, ginfo_dispy ;デスクトップ全体をキャプチャする場合 redraw 1 ;この命令をしないと反映されません。 ;buffer命令で初期化したウインドウの場合は ;もちろん不要です。 */