SAVEIMG

構文
SAVEIMG( [画像名, ID, x, y, 幅, 高さ, クライアント指定, JPEG指定, 画面取得指定] )
引数
画像名
保存ファイル名(BMP/JPEG形式) (画像名を省略した場合はクリップボードへ)
ID
Windowを識別するID (0 であればスクリーン全体)
X, Y
位置
幅, 高さ
大きさ
クライアント指定
FALSE
指定ウィンドウ全体 (デフォルト)
TRUE
クライアント領域
JPEG指定
1(高圧縮)~100(低圧縮) までの圧縮率を指定すると JPEGにて保存、 0(デフォルト)は BMPにて保存
画面取得指定
0(デフォルト)
指定アプリがフォアグランドかバックグランドかにより画面の取得方法を変更
IMG_FORE
フォアグランドとして可視画面(デスクトップ)より画像を取得
IMG_BACK
バックグランドとしてアプリより画像を取得(他画面がオーバーラップしていてもOK)
戻値

プログラム実行例

画像をクリップボードにコピーする

Alt+Sでマウスカーソル下のオブジェクトのスクリーンショット画像をクリップボードにコピーします。

SETHOTKEY(VK_S, MOD_ALT, "imageToClipboard") SETHOTKEY(VK_ESC, EMPTYPARAM, "forceQuit") WHILE TRUE SLEEP(0.01) WEND PROCEDURE imageToClipboard() SAVEIMG( , GETID(GET_FROMPOINT_WIN)) FEND ////////////////////////////////////////////////// // 【引数】 // // 【戻値】 // ////////////////////////////////////////////////// PROCEDURE forceQuit() EXITEXIT FEND

画像をクリップボードにコピーする

SETHOTKEY(VK_S, MOD_ALT, "imageToClipboard") SETHOTKEY(VK_ESC, EMPTYPARAM, "forceQuit") WHILE TRUE SLEEP(0.01) WEND PROCEDURE imageToClipboard() SAVEIMG( , GETID(GET_ACTIVE_WIN)) FEND ////////////////////////////////////////////////// // 【引数】 // // 【戻値】 // ////////////////////////////////////////////////// PROCEDURE forceQuit() EXITEXIT FEND

表示されているすべてのウィンドウのスクリーンショットを保存

DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject") DIM folderspec = "D:\Desktop\Screenshot" IF FSO.FolderExists(folderspec) = FALSE THEN FSO.CreateFolder(folderspec) FOR n = 0 TO GETALLWIN() - 1 DIM ID = ALL_WIN_ID[n] IFB STATUS(ID, ST_VISIBLE) = TRUE DIM filename = ID + "_" + STATUS(ID, ST_TITLE) filename = PathCleanupSpec(filename) DIM path = FSO.BuildPath(folderspec, filename) path = uniqueFilename(path) SAVEIMG(path, id) ENDIF NEXT ////////////////////////////////////////////////// // 【引数】 // filename : 使えない文字を削除するファイル・フォルダ名 // 【戻値】 // ファイル名として使えない文字を削除した文字列 ////////////////////////////////////////////////// FUNCTION PathCleanupSpec(filename) DIM filenameErrChar[12] = "\", "/", ":", "*", "?", "<#DBL>", "<#CR>", "<#TAB>", "<", ">", "|", "[", "]" FOR n = 0 TO UBound(filenameErrChar) filename = REPLACE(filename, filenameErrChar[n], "") NEXT RESULT = filename FEND ////////////////////////////////////////////////// // 【引数】 // 配列 : 上限値を求める配列 // 【戻値】 // 配列の上限値 ////////////////////////////////////////////////// FUNCTION UBound(array[]) RESULT = RESIZE(array) FEND ////////////////////////////////////////////////// // 【引数】 // path : ファイルのパス // 【戻値】 // 重複しないファイル名 ////////////////////////////////////////////////// FUNCTION uniqueFilename(path) DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject") IFB FSO.FileExists(path) THEN fol = FSO.GetParentFolderName(path) filename = FSO.GetBaseName(path) extension = FSO.GetExtensionName(path) i = 2 WHILE FSO.FileExists(FSO.BuildPath(fol, filename + " (" + i + ")." + extension)) i = i + 1 WEND RESULT = FSO.BuildPath(fol, filename + " (" + i + ")." + extension) ELSE RESULT = path ENDIF FEND

この記事は役に立ちましたか?
役に立った 役に立たなかった