ウィンドウ操作関数#
ID取得#
- getid(タイトル[, クラス名=EMPTY, 待ち時間=1])#
- ウィンドウを検索し、該当するウィンドウを示すIDを返します見つからない場合やタイムアウトした場合-1を返します
- パラメータ:
タイトル (文字列) -- 検索するウィンドウのタイトル (部分一致)
クラス名 (文字列 省略可) -- 検索するウィンドウのクラス名 (部分一致)
待ち時間 (数値 省略可) -- ウィンドウが見つからない場合のタイムアウト時間
- 戻り値の型:
数値
- 戻り値:
ウィンドウID、失敗時は
-1
- getid(定数)
- パラメータ:
定数 (定数) --
以下の定数を指定
- GET_ACTIVE_WIN
- アクティブウィンドウ
- GET_FROMPOINT_WIN
- マウスカーソル下のウィンドウ
- GET_FROMPOINT_OBJ
- マウスカーソル下の子ウィンドウ
- GET_LOGPRINT_WIN
- Printウィンドウ
- GET_BALLOON_WIN
- GET_FUKIDASI_WIN
- 吹き出し
- GET_THISUWSC_WIN
- GET_CONSOLE_WIN
- UWSCRを実行しているコンソールウィンドウのIDを返します
- GET_FORM_WIN
- GET_FORM_WIN2
- 未実装 (-1を返す)
- 戻り値の型:
数値
- 戻り値:
ウィンドウID
- getallwin([ID=EMPTY])#
- すべてのウィンドウのIDを得ます特定のウィンドウIDを指定した場合、そのウィンドウの子要素を得ます
- パラメータ:
ID (数値 省略可) -- 子要素を取得したいウィンドウのID
- 戻り値:
ウィンドウIDの配列
特殊変数の廃止
UWSCとは異なり見つかったウィンドウの個数ではなくウィンドウIDの配列が返るようになりましたそれに伴い特殊変数ALL_WIN_ID
は廃止されました
- idtohnd(ID)#
- ウィンドウIDからウィンドウハンドル値を得ます
- パラメータ:
ID (数値) -- ウィンドウID
- 戻り値:
ウィンドウハンドル値、該当ウィンドウがない場合は
0
- hndtoid(hwnd)#
- ウィンドウハンドル値からウィンドウIDを得ます
- パラメータ:
hwnd (数値) -- ウィンドウハンドル値
- 戻り値:
ウィンドウID、該当ウィンドウがない場合
-1
- getctlhnd(ID, アイテム名[, n番目=1])#
- getctlhnd(ID, メニュー定数)
- 子ウィンドウ(ボタン等)のウィンドウハンドル値、またはメニューハンドルを得ます
- パラメータ:
ID (数値) -- ウィンドウID
アイテム名 (文字列) -- 子ウィンドウのタイトルまたはクラス名 (部分一致)
メニュー定数 (定数) --
以下のいずれかを指定
- GET_MENU_HND
メニューハンドルを返す
- GET_SYSMENU_HND
システムメニューハンドルを返す
n番目 (数値 省略可) -- n番目に該当するアイテムを探す
- 戻り値:
ハンドル値
サンプルコード
id = getid("ファイル名を指定して実行") h1 = getctlhnd(id, "実行するプログラム名、") // タイトルを部分一致 h2 = getctlhnd(id, "static", 2) // クラス名指定、2番目 assert_equal(h1, h2) // 一致
ID0について#
サンプルコード
ctrlwin(getid("TEST"), HIDE)
// getid("TEST")のウィンドウがID0に記憶される
ctrlwin(0, SHOW) // 同じウィンドウに対して実行される
ウィンドウ操作#
- clkitem(ID, アイテム名[, CLK定数=0, チェック指定=TRUE, n番目=1])#
- ボタン等をクリックします
- パラメータ:
ID (数値) -- 対象のウィンドウID
アイテム名 (文字列) -- クリックしたいボタンや項目の名前
CLK定数 (定数 省略可) --
クリックしたいアイテムの種類やクリックの方法を指定します
これらの定数は
OR
で連結することにより複数指定が可能アイテム種別
アイテム種別が未指定の場合はすべての種別を検索します(CLK_BTN or CLK_LIST or CLK_TAB or CLK_MENU or CLK_TREEVIEW or CLK_LISTVIEW or CLK_TOOLBAR or CLK_LINK
と同等)複数指定時の検索順は以下の通りCLK_BTN
CLK_LIST
CLK_TAB
CLK_MENU
CLK_TREEVIEW
CLK_LISTVIEW
CLK_TOOLBAR
CLK_LINK
- CLK_BTN
- ボタン、チェックボックス、ラジオボタン、その他
- CLK_LIST
- リストボックス、コンボボックス
ヒント
複数選択可能なリストボックスでの複数項目指定
アイテム名をタブ文字 (<#TAB>
) で区切るか、配列指定で複数選択できます// foo, bar, bazを選択状態にする clkitem(id, "foo<#TAB>bar<#TAB>baz", CLK_LIST) // タブ文字区切り clkitem(id, ["foo", "bar", "baz"], CLK_LIST) // タブ文字区切り
- CLK_TAB
- タブ
- CLK_MENU
- メニュー
ヒント
アイテム名のパス指定
ファイル\保存
のように階層構造をパス表記することもできます注意
CLK_API
でのみ使用可能です
- CLK_TREEVIEW
- CLK_TREEVEW
- ツリービュー
制限事項
UWSCR x86版ではCLK_TREEVIEW or CLK_API
によるクリック操作に制限があり、x64のウィンドウに対するクリックが行えませんCLK_API
以外の方式を指定してくださいヒント
アイテム名はroot\branch\leaf
のように階層構造を表すパス形式も指定できますCLK_UIA
で未展開のツリーを展開してクリックするためにはパス形式を指定する必要がありますCLK_UIA
で枝要素を指定した場合、枝が閉じていれば開き、開いていれば閉じます
- CLK_LISTVIEW
- CLK_LSTVEW
- リストビュー、ヘッダ
ヒント
UWSCからの機能拡張
リストビュー行の一番左だけでなく、どの列のアイテム名でも指定できるようになりました (
CLK_API/CLK_UIA
)ヘッダ名を指定することでヘッダをクリックできるようになりました (
CLK_API/CLK_ACC/CLK_UIA
)複数行を選択できるようになりました (
CLK_UIA
)
- CLK_TOOLBAR
- ツールバー
- CLK_LINK
- リンク
注意
CLK_APIによるリンククリックは未対応ですCLK_ACCをご利用ください
マウスボタン指定
マウスボタン指定があった場合はクリック方式に関わらずメッセージ送信(PostMessage)による疑似クリック処理が行われます未指定の場合はクリック方式別の処理を行います- CLK_RIGHTCLK
右クリック
- CLK_LEFTCLK
左クリック (CLK_RIGHTCLKと同時指定ならこちらが優先)
- CLK_DBLCLK
ダブルクリック (CLK_LEFTCLKと同時指定で2回目のクリック)
クリック方式(API)
クリック方式が未指定の場合はすべての方式で検索を行います(CLK_API
orCLK_UIA
orCLK_ACC
と同等)クリック方式が複数指定された場合の適用順は以下の通りCLK_API
CLK_UIA
CLK_ACC
- CLK_API
- Win32 APIによる検索およびクリッククリックは対象アイテムに応じたメッセージ処理を行います
- CLK_ACC
- アクセシビリティコントロールによる検索およびクリッククリックはACCオブジェクトのデフォルトアクションを実行、または選択を行います
- CLK_UIA
- UI Automationによる検索およびクリック
オプション
- CLK_BACK
バックグラウンド処理 (ウィンドウをアクティブにしない)
- CLK_MOUSEMOVE
- CLK_MUSMOVE
クリック位置にマウスを移動
- CLK_SHORT
- アイテム名の部分一致未指定の場合は完全一致する必要があります
- CLK_FROMLAST
逆順サーチ (CLK_ACC指定時のみ有効)
- CLK_HWND
戻り値を対象アイテムのHWNDにする (0は対象不明)
チェック指定 (真偽値 省略可) --
チェックボックスやメニューの場合、チェックのオンオフを指定 (TRUEならチェックを入れる、FALSEならはずす)3状態チェックボックスの場合、2
を指定することでグレー状態にできますそれ以外のアイテムの場合FALSEだとクリック動作を行いません (対象が存在していればTRUEを返す)3状態チェックボックスのサポート
CLK_APIとCLK_UIAのみCLK_ACCは3状態チェックボックスをサポートしませんCLK_UIA指定時の2の動作
2状態チェックボックスに対してCLK_UIAで2を指定した場合は、クリック操作が複数回行われますが元々の状態に戻りますn番目 (数値 省略可) --
同名アイテムの場合何番目をクリックするか
UWSCとは順序が異なる場合があります
実装の違いによりUWSCとは別の番号を指定しなければならない可能性がありますご注意ください
- 戻り値:
成功時TRUE、
CLK_HWND
指定時は対象のウィンドウハンドル値を返す
アイテム名の一致について
CLK_SHORT
を指定しない場合アイテム名は完全一致する必要がありますが、ニーモニックがある場合はそれを無視することができます&
の有無は問わない(&A)
のように括弧で括られたニーモニックは括弧ごと無視できる括弧以降にある文字も無視できる
// &Button clkitem(id, "&Button") // ok, "&"を含めても一致する clkitem(id, "Button") // ok, "&"がなくても一致 // ボタン(&B) clkitem(id, "ボタン(&B)") // ok clkitem(id, "ボタン(B)") // ok, "&"は無視できる clkitem(id, "ボタン") // ok, 括弧ごと無視できる // ボタン (&B) clkitem(id, "ボタン") // ok, 括弧の前に半角スペースがあった場合それも無視できる // 選択 (&S)... clkitem(id, "選択") // ok, 括弧以降も無視できる
- ctrlwin(ID, コマンド定数)#
- 対象ウィンドウに命令コマンドを送信しますID0 を更新します
- パラメータ:
ID (数値) -- 対象ウィンドウ
コマンド定数 (定数) --
実行したいコマンドを示す定数
- CLOSE
ウィンドウを閉じる
- CLOSE2
ウィンドウを強制的に閉じる
- ACTIVATE
ウィンドウをアクティブにする
- HIDE
ウィンドウを非表示にする
- SHOW
ウィンドウの非表示を解除する
- MIN
ウィンドウを最小化する
- MAX
ウィンドウを最大化する
- NORMAL
ウィンドウを通常サイズに戻す
- TOPMOST
ウィンドウを最前面に固定する
- NOTOPMOST
ウィンドウの最前面固定を解除
- TOPNOACTV
ウィンドウを最前面に移動するがアクティブにはしない
- 戻り値:
なし
- sckey(ID, キー[, キー, ...])#
- ショートカットキーを送信します
- パラメータ:
ID (ウィンドウID) -- アクティブにするウィンドウのID、0指定でどのウィンドウもアクティブにしない
キー (定数または文字列) --
仮想キーコード一覧 のいずれかまたはアルファベット一文字、35個まで
修飾子キー指定について
VK_SHIFT
,VK_CTRL
,VK_ALT
,VK_WIN
は押し下げられた状態になります (Rも含む)これらのキーはすべてのキー入力が終了したあとにキーアップ状態に戻ります
- 戻り値:
なし
- setslider(ID, 値[, n番目=1, スクロール=TRUE])#
- スライダー(スクロールバー、トラックバー)の値を設定します
- パラメータ:
ID (ウィンドウID) -- 対象ウィンドウのID
値 (数値) --
スライダーに設定する値
範囲外指定時の動作
最大値を上回る値だった場合は最大値に、最小値を下回る値だった場合は最小値に変更されますn番目 (数値 省略可) -- n番目のスライダーを設定する
スクロール (真偽値 省略可) -- TRUEならスクロールバーを少しずつ動かす
- 戻り値の型:
真偽値
- 戻り値:
成功時TRUE、失敗または操作不能時はFALSE
- sendstr(ID, 文字列[, n番目=0, 送信モード=FALSE, ACC指定=FALSE])#
- エディットボックスに文字列を送信します
- パラメータ:
ID (数値) --
対象ウィンドウのID
0ならクリップボードに送信 (その場合n番目、送信モード、ACC指定は無視されます)文字列 (文字列) -- 送信する文字列
n番目 (数値) --
n番目のエディットボックスに送信
0ならフォーカスされたエディットボックス (対象ウィンドウは必ずアクティブになる)UWSCとは順序が異なる場合があります
実装の違いによりUWSCとは別の番号を指定しなければならない可能性がありますご注意ください送信モード (真偽値または数値) --
- FALSE または 0
- 追記
- TRUE または 1
- 置き換え
- 2
- 一文字ずつ送信ACC時は無視されます (TRUE扱い)
ACC指定 (真偽値または定数) --
- FALSE または 0
- APIまたはUIAを使用
ヒント
APIで検索を行い該当するものがなかった場合はUIAでの検索を試みますUIA使用時は送信モードは無視され、常に置き換えられます
- TRUE または 1
- ACCを使用
- STR_ACC_CELL (5)
- DataGridView内のCell値の変更 (ACCを使用)
- STR_UIA (6)
- UIAを使用送信モードは無視され、常に置き換えられます
UWSCとの違い
TRUEでも対象ウィンドウをアクティブにしないため、2は廃止されました
- 戻り値:
なし
- mouseorg(ID[, 基準=MORG_WINDOW, 画面取得=MORG_FORE, HWND=FALSE])#
- 以下の関数にて座標の始点(0, 0)を特定のウィンドウ基準とするMORG_DIRECT を指定した場合は以下も対象となる
- パラメータ:
ID (数値) --
ウィンドウID または HWND
該当するIDが存在しない場合は失敗となるが、基準にMORG_DIRECT
が指定されている場合はこの値をHWNDとして扱うIDまたはHWNDに該当する有効なウィンドウが存在しない場合は失敗となる0
が指定された場合はスクリーン座標基準に戻す (この場合以下の引数は無視される)基準 (定数 省略可) --
座標の始点を指定する
- MORG_WINDOW (0)
- 対象ウィンドウのウィンドウ領域左上を基準とする
- MORG_CLIENT
- 対象ウィンドウのクライアント領域左上を基準とする
- MORG_DIRECT
- 対象ウィンドウのクライアント領域左上を基準とする送信するメッセージは以下 (対象ウィンドウがこれらのメッセージを処理しない場合操作は無効となる)
関数
操作
メッセージ
mmv
カーソル移動
WM_MOUSEMOVE
btn
左ボタン下げ
WM_LBUTTONDOWN
btn
左ボタン上げ
WM_LBUTTONUP
btn
右ボタン下げ
WM_RBUTTONDOWN
btn
右ボタン上げ
WM_RBUTTONUP
btn
中央ボタン下げ
WM_MBUTTONDOWN
btn
中央ボタン上げ
WM_MBUTTONUP
btn
マウスホイール回転(縦)
WM_MOUSEWHEEL
btn
マウスホイール回転(横)
WM_MOUSEHWHEEL
kbd
キー下げ
WM_KEYDOWN
kbd
キー上げ
WM_KEYUP
kbd
文字送信(1文字ずつ)
WM_CHAR
TOUCH非対応
btn関数でTOUCH指定時のMORG_DIRECTは無視されMORG_CLIENTとして動作します
画面取得 (定数 省略可) --
画面取得方法を指定する
- MORG_FORE
- MORG_BACK
-
動作しない場合
対象ウィンドウによっては正常に動作しない可能性があります例: saveimgのIMG_BACKで画像が保存できないウィンドウCHKIMG_USE_WGCAPI指定時
chkimgでGraphicsCaptureAPI利用時にこれらのオプションは影響しませんウィンドウの位置を問わずウィンドウ画像を取得します
HWND (真偽値またはEMPTY 省略可) --
MORG_DIRECT
指定時の第一引数の振る舞いを限定します (MORG_DIRECT
以外の場合無視される)- FALSE
- 第一引数をIDとしますが、有効なIDが登録されていない場合はその値をHWNDとして扱います
例
30000 を指定ID30000が登録済み→該当ウィンドウを対象とする
ID30000が未登録→HWNDが30000のウィンドウを対象とする
- TRUE
- 第一引数をHWNDとして扱います
- 戻り値の型:
真偽値
- 戻り値:
成功した場合TRUE、失敗時はFALSE
サンプルコード
// MORG_DIRECTのHWND指定 id = getid(hoge) hnd = getctlhnd(id, class_name) // このとき hnd の値がいずれかの登録済みIDと一致してしまった場合は予期せぬ動作となる mouseorg(hnd, MORG_DIRECT) // MORG_DIRECTかつ第四引数をTRUEにした場合hndはHWNDとして扱われる mouseorg(hnd, MORG_DIRECT, , TRUE)
- chkmorg()#
- mouseorgで基準点となっているスクリーン座標を得る
- 戻り値の型:
数値配列またはEMPTY
- 戻り値:
基準点が変更されている場合は [x, y]、変更されていない場合はEMPTY
サンプルコード
mouseorg(id) print chkmorg() // [x, y] mouseorg(0) print chkmorg() // EMPTY
ウィンドウ情報取得#
- status(ID, ST定数[, ST定数...])#
- 対象ウィンドウの各種状態を取得します
- パラメータ:
ID (数値) -- ウィンドウID
ST定数 (定数) --
取得したい状態を示す定数を指定
定数は最大21個指定できます- ST_TITLE
ウィンドウタイトル (文字列)
- ST_CLASS
ウィンドウクラス名 (文字列)
- ST_X
ウィンドウ左上のX座標 (数値)
- ST_Y
ウィンドウ左上のY座標 (数値)
- ST_WIDTH
ウィンドウの幅 (数値)
- ST_HEIGHT
ウィンドウの高さ (数値)
- ST_CLX
ウィンドウのクライアント領域左上のX座標 (数値)
- ST_CLY
ウィンドウのクライアント領域左上のY座標 (数値)
- ST_CLWIDTH
ウィンドウのクライアント領域の幅 (数値)
- ST_CLHEIGHT
ウィンドウのクライアント領域の高さ (数値)
- ST_PARENT
親ウィンドウのID (数値)
- ST_ICON
最小化してればTRUE (真偽値)
- ST_MAXIMIZED
最大化してればTRUE (真偽値)
- ST_VISIBLE
ウィンドウが可視ならTRUE (真偽値)
- ST_ACTIVE
ウィンドウがアクティブならTRUE (真偽値)
- ST_BUSY
ウィンドウが応答なしならTRUE (真偽値)
- ST_ISID
ウィンドウが有効ならTRUE (真偽値)
- ST_WIN64
プロセスが64ビットかどうか (真偽値)
- ST_PATH
プロセスの実行ファイルのパス (文字列)
- ST_PROCESS
プロセスID (数値)
- ST_MONITOR
ウィンドウが表示されているモニタ番号 (
monitor
関数に対応) (数値)
- ST_WX
ウィンドウの補正なしX座標
- ST_WY
ウィンドウの補正なしY座標
- ST_WWIDTH
ウィンドウの補正なし幅
- ST_WHEIGHT
ウィンドウの補正なし高さ
- ST_ALL
- すべての状態を取得この定数を指定する場合ほかの定数は指定できません
- 戻り値:
ST定数を一つだけ指定した場合は得られた値、複数指定時または
ST_ALL
指定時は連想配列 (キーはST定数)
サンプルコード
id = getid("uwsc", "HH") // uwscヘルプファイル stat = status(id, ST_TITLE, ST_CLASS, ST_HEIGHT, ST_WIDTH) print stat[ST_TITLE] // uwsc print stat[ST_CLASS] // HH Parent print stat[ST_HEIGHT] // 778 print stat[ST_WIDTH] // 1251
- monitor(モニタ番号[, MON定数=MON_ALL])#
- モニタの情報を得ます
- パラメータ:
モニタ番号 (数値 省略可) -- モニタを示す番号 (0から)
MON定数 (定数 省略可) --
取得したい情報を示す定数
- MON_X
モニタのX座標 (数値)
- MON_Y
モニタのY座標 (数値)
- MON_WIDTH
モニタの幅 (数値)
- MON_HEIGHT
モニタの高さ (数値)
- MON_PRIMARY
- MON_ISMAIN
プライマリ(メイン)モニタならTRUE (真偽値)
- MON_NAME
モニタ名 (文字列)
- MON_WORK_X
作業エリアのX座標 (数値)
- MON_WORK_Y
作業エリアのY座標 (数値)
- MON_WORK_WIDTH
作業エリアの幅 (数値)
- MON_WORK_HEIGHT
作業エリアの高さ (数値)
- MON_DPI
画面のDPI
- MON_SCALING
スケーリング倍率 (%)
- MON_ALL
上記すべて (連想配列、キーはMON定数)
- 戻り値:
定数指定 (
MON_ALL
以外): 得られた値MON_ALL
指定: 連想配列 (キーはMON定数)該当モニタなし:
FALSE
- monitor()
- (引数なし) モニタの数を得ます
- 戻り値:
モニタの数
サンプルコード
// すべてのモニタのサイズを表示 for i = 0 to monitor() - 1 m = monitor(i, MON_ALL) print "モニタ" + i + ": " + m[MON_NAME] print m[MON_X] + ", " + m[MON_Y] print m[MON_WIDTH] + " x " + m[MON_HEIGHT] next
- posacc(ID, クライアントX座標, クライアントY座標[, 種別=0])#
- 座標位置のアクセシビリティオブジェクトから情報を得ます
- パラメータ:
ID (ウィンドウID) -- 対象ウィンドウのID
クライアントX座標 (数値) -- 対象ウィンドウのクライアント領域におけるX座標
クライアントY座標 (数値) -- 対象ウィンドウのクライアント領域におけるY座標
種別 (定数 省略可) --
取得したい情報の種類を示す定数
- 0
ACC_ACC
を実行し、取得できなければACC_API
を実行 (デフォルト)
- ACC_ACC
- 表示文字列の取得
- ACC_API
- DrawText, TextOut等のAPIで描画されたテキストを取得 (未実装)
- ACC_NAME
- オブジェクトの表示名
- ACC_VALUE
- オブジェクトの値 (エディットボックス等)
- ACC_ROLE
- オブジェクトの役割名
- ACC_STATE
- オブジェクトの状態
- ACC_DESCRIPTION
- オブジェクトの説明
- ACC_LOCATION
- オブジェクトの位置情報[x, y, 幅, 高さ]
- ACC_BACK (オプション)
- 他の定数とOR連結で指定対象ウィンドウをアクティブにしない
- 戻り値の型:
文字列または配列
- 戻り値:
ACC_LOCATION
指定時は数値の配列を返しますACC_STATE
指定時は文字列の配列を返しますそれ以外は該当する値を文字列で返します失敗時はEMPTYを返します
- muscur()#
- マウスカーソルの種別を返します
- 戻り値の型:
定数
- 戻り値:
- CUR_APPSTARTING (1)
- 砂時計付き矢印
- CUR_ARROW (2)
- 標準矢印
- CUR_CROSS (3)
- 十字
- CUR_HAND (4)
- ハンド
- CUR_HELP (5)
- クエスチョンマーク付き矢印
- CUR_IBEAM (6)
- アイビーム (テキスト上のカーソル)
- CUR_NO (8)
- 禁止
- CUR_SIZEALL (10)
- 4方向矢印
- CUR_SIZENESW (11)
- 斜め左下がりの両方向矢印
- CUR_SIZENS (12)
- 上下両方向矢印
- CUR_SIZENWSE (13)
- 斜め右下がりの両方向矢印
- CUR_SIZEWE (14)
- 左右両方向矢印
- CUR_UPARROW (15)
- 垂直の矢印
- CUR_WAIT (16)
- 砂時計
- 0
- 上記以外
- peekcolor(x, y[, RGB指定=COL_BGR, クリップボード=FALSE])#
- 指定位置の色を得ます
- パラメータ:
x (数値) -- X座標
y (数値) -- Y座標
RGB指定 (定数 省略可) --
戻り値の指定
- COL_BGR (0)
- BGR値で返す青は$FF0000、緑は$00FF00、赤は$0000FF
- COL_RGB
- RGB値で返す赤は$FF0000、緑は$00FF00、青は$0000FF
- COL_R
- 赤の成分のみ
- COL_G
- 緑の成分のみ
- COL_B
- 青の成分のみ
クリップボード (真偽値 省略可) --
- FALSE
- 画面の指定座標から
- TRUE
- クリップボード画像の指定座標から
- 戻り値の型:
数値
- 戻り値:
- 指定座標の色を示す数値失敗時は
-1
(範囲外指定やクリップボード指定でクリップボード画像がない場合)
- getslider(ID[, n番目=1, パラメータ=SLD_POS])#
- スライダー(スクロールバー、トラックバー)の値を取得します
- パラメータ:
ID (ウィンドウID) -- 対象ウィンドウのID
n番目 (数値 省略可) -- n番目のスライダーから値を得る
パラメータ (定数 省略可) --
取得する値の種類を示す定数
- SLD_POS
- 現在値
- SLD_MIN
- 最小値
- SLD_MAX
- 最大値
- SLD_PAGE
- 1ページ移動量
- SLD_BAR
- 表示方向 (横なら0、縦なら1を返す)
- SLD_X
- クライアントX座標
- SLD_Y
- クライアントY座標
- 戻り値の型:
数値
- 戻り値:
取得した値、該当するスライダーがない場合は
-999999
- chkbtn(ID, アイテム名[, n番目=1, ACC=FALSE])#
- ボタン(チェックボックス、ラジオボタン)やメニューのチェック状態を得る
- パラメータ:
ID (数値) -- 対象ウィンドウのID
アイテム名 (文字列) -- ボタン名 (部分一致)
n番目 (数値 省略可) --
n番目に該当するボタンの状態を得る
UWSCとは順序が異なる場合があります
実装の違いによりUWSCとは別の番号を指定しなければならない可能性がありますご注意くださいACC (真偽値 省略可) --
- FALSE
- APIまたはUIAを使用
- TRUE
- ACCを使用
UWSCとの違い
TRUEでも対象ウィンドウをアクティブにしないため、2は廃止されました
- 戻り値の型:
数値またはFALSE
- 戻り値:
-1: 存在しない、または無効
0: チェックされていない
1: チェックされている
2: チェックボックスが灰色 (ACCでは判定不可)
FALSE: ウィンドウが存在しない
- getstr(ID[, n番目=1, 種別=STR_EDIT, マウス移動=FALSE])#
- ウィンドウ上の文字列を取得します
- パラメータ:
ID (数値) --
対象ウィンドウのID
0の場合クリップボードから取得します (その場合以降の引数は無視されます)クリップボードへのアクセスができない場合
クリップボードアクセス時に何かしらのエラーが発生した場合はEMPTYを返しますn番目 (数値 省略可) --
n番目に該当するアイテム種別の文字列を得る
UWSCとは順序が異なる場合があります
実装の違いによりUWSCとは別の番号を指定しなければならない可能性がありますご注意ください種別 (定数 省略可) --
文字列を取得するアイテム種別
- STR_EDIT
- エディットコントロール
- STR_STATIC
- スタティックコントロール
- STR_STATUS
- ステータスバー
- STR_ACC_EDIT
- エディットコントロール等 (ACCで取得)
- STR_ACC_STATIC
- スタティックコントロール (ACCで取得)
- STR_ACC_CELL
- DataGridView内のセルの値
マウス移動 (真偽値 省略可) -- TRUEなら該当アイテムまでマウス移動
- 戻り値の型:
文字列またはEMPTY
- 戻り値:
取得した文字列、対象がない場合はEMPTY
- getitem(ID, 種別[, n番目=1, 列=1, ディセーブル無視=FALSE, ACC最大取得数=0])#
- ウィンドウ上の文字情報をアイテム種類別に取得する
- パラメータ:
ID (数値) -- 対象ウィンドウのID
種別 (定数) --
種類を示す定数、OR連結で複数指定可
- ITM_BTN
ボタン、チェックボックス、ラジオボタン
- ITM_LIST
リストボックス、コンボボックス
- ITM_TAB
タブコントロール
- ITM_MENU
メニュー
- ITM_TREEVIEW (ITM_TREEVEW)
ツリービュー
- ITM_LISTVIEW (ITM_LSTVEW)
リストビュー
- ITM_EDIT
エディットボックス
- ITM_STATIC
スタティックコントロール
- ITM_STATUSBAR
ステータスバー
- ITM_TOOLBAR
ツールバー
- ITM_LINK
リンク
- ITM_ACCCLK
ACCによりクリック可能なもの
- ITM_ACCCLK2
ACCによりクリック可能なもの、選択可能テキスト
- ITM_ACCTXT
ACCスタティックテキスト
- ITM_ACCEDIT
ACCエディット可能テキスト
- ITM_FROMLAST
ACCで検索順序を逆にする (最後のアイテムから取得)
UWSCとの違い
ACCでもウィンドウをアクティブにしないため、ITM_BACKは廃止されましたn番目 (数値 省略可) --
ITM_LIST、ITM_TREEVIEW、ITM_LISTVIEW指定時かつ対象が複数あった場合にいずれを取得するか指定、-1ならすべて取得
複数種別同時指定時の処理について
ITM_LIST、ITM_TREEVIEW、ITM_LISTVIEWのうち複数を同時に指定した場合、それぞれのn番目を検索します// この場合リストまたはコンボボックスの2番目、及びツリービューの2番目をそれぞれ取得します getitem(id, ITM_LIST or ITM_TREEVIEW, 2)
UWSCとは順序が異なる場合があります
実装の違いによりUWSCとは別の番号を指定しなければならない可能性がありますご注意ください列 (数値 省略可) -- ITM_LISTVIEW指定時にどの列から取得するかを指定(1から)、0ならすべての列、-1ならカラム名を取得
ディセーブル無視 (真偽値 省略可) -- FALSEならディセーブル状態でも取得する、TRUEなら取得しない
ACC最大取得数 (数値 省略可) -- ACC指定時に取得するアイテム数の上限を指定、0なら無制限、マイナス指定時は逆順(ITM_FROMLASTと同じ)
- 戻り値の型:
文字列の配列
- 戻り値:
取得されたアイテム名の配列
UWSCとの違い
戻り値が配列になったためALL_ITEM_LIST
は廃止されましたitems = getitem(id, ITM_BTN) // 個数を得る print length(items) // アイテム名の表示 for item in items print item next
また、空の文字列は結果に含まれなくなりました// UWSCでは空文字を1つ目のアイテムとして出力していましたが、UWSCRでは空文字はスキップされます i = 0 for item in getitem(getid('ファイル名を指定して実行'), ITM_STATIC) i += 1 print "<#i>: <#item>" next // 結果 // 1: 実行するプログラム名、または開くフォルダーやドキュメント名、インターネット リソース名を入力してください。 // 2: 名前(&O):
- getslctlst(ID[, n番目=1, 列=1])#
- 表示されているコンボボックス、リストボックス、ツリービュー、リストビューから選択されている項目を取得
- パラメータ:
数値 (ID) -- 対象ウィンドウのID
n番目 (数値 省略可) -- n番目の該当コントロールから値を得る (1から)
列 (数値 省略可) -- リストビューの場合取得する列を指定 (1から)
- 戻り値の型:
文字列、または文字列の配列
- 戻り値:
選択項目、複数選択されている場合は配列で返る
UWSCとの違い
リストやリストビューが複数選択されていた場合にタブ連結された文字列ではなく、それぞれの要素を持つ配列として返すようになりました
- chkclr(探索色[, 閾値=0, 範囲=[], モニタ番号=0])#
- 範囲内に探索色があればその位置を返します
mouseorg
が実行されている場合は探索対象がそのウィンドウとなります- パラメータ:
探索色 (数値または配列) --
探す色を指定します
数値: BGR値
配列: [B値, G値, R値]
閾値 (数値または配列 省略可) --
探索する色の幅を指定します
数値: BGRそれぞれに対する閾値
配列: 個別指定 [対B, 対G, 対R]
閾値指定による色の幅について
探索色のB値が30でBに対する閾値が5の場合25~35であればヒットする255 ($FF) を指定すると元の値に関わらずその色要素に対して必ずヒットしますchkclr([0, 100, 0], [255, 5, 255]) // 下限: [ 0, 95, 255] // 上限: [255, 105, 255] // が探索色となるB要素とR要素はすべてを対象とし、Gのみ95-105を対象とする
範囲 (配列 省略可) --
探索範囲を [左上x, 左上y, 右下x, 右下y] で指定、省略時はモニタまたはウィンドウに準拠
部分的な省略について
配列サイズが4より小さい場合、不足分は省略扱いとなりますnull
を記述することで省略であることを明示できます[100] 左上xのみ指定、残りは省略
[100, 100] 左上xyを指定、右下xyは省略
[100, null, 100] 左上xと右下xを指定、左上yと右下yは省略
モニタ番号 (数値 省略可) -- mouseorgを使わない場合に探索対象とするモニタ番号を0から指定
- 戻り値の型:
二次元配列
- 戻り値:
該当色のある座標および見つかった色([x, y, [b, g, r]])の配列
サンプルコード
function bgr_array_to_int(arr: array) result = arr[0] * $10000 + arr[1] * $100 + arr[2] fend mouseorg(id) offset_x = status(id, ST_X) offset_y = status(id, ST_Y) color = [0, 100, 0] bgcolor = bgr_array_to_int(color) threshold = [0, 5, 0] // [0, 95, 0] から [0, 105, 0] を探索範囲とする for found in chkclr(color, threshold) x = found[0] + offset_x y = found[1] + offset_y color = found[2] msg = "座標: <#x>, <#y> 色: <#color>" balloon(msg, x, y, FUKI_DOWN or FUKI_POINT, , , 0, bgcolor) if msgbox("次へ") = BTN_CANCEL then break endif next
画像検索#
- chkimg(画像ファイルパス[, スコア=95, 最大検索数=5, left=EMPTY, top=EMPTY, right=EMPTY, bottom=EMPTY, オプション=0, モニタ番号=0])#
- 指定画像をスクリーン上から探してその座標を返します
UWSCとは互換性がありません
特殊変数
G_IMG_X
,G_IMG_Y
,ALL_IMG_X
,ALL_IMG_Y
は廃止戻り値が変更されています
- パラメータ:
画像ファイルパス (文字列) -- 検索する画像のパス (jpg, bmp, png)
スコア (数値 省略可) --
画像に対する一致率を指定 (0-100)
一致率が指定値以上であれば結果を返します100が完全一致最大検索数 (数値 省略可) -- 検索の試行回数を指定
left (数値 省略可) -- 検索範囲指定: 左上X座標、省略時は画面左上X座標
top (数値 省略可) -- 検索範囲指定: 左上Y座標、省略時は画面左上Y座標
right (数値 省略可) -- 検索範囲指定: 右下X座標、省略時は画面右下X座標
bottom (数値 省略可) -- 検索範囲指定: 右下X座標、省略時は画面右下Y座標
オプション (定数 省略可) --
実行時オプションを指定、OR連結可
- CHKIMG_NO_GRAY
- 画像をグレースケール化せず探索を行う
- CHKIMG_USE_WGCAPI
- デスクトップまたはウィンドウの画像取得にGraphicsCaptureAPIを使うデスクトップの場合は対象とするモニタを次の引数で指定mouseorgを利用している場合はウィンドウを対象とするこのオプションを指定した場合mouseorgの
MOUSE_FORE
およびMOUSE_BACK
は無視されます (指定に関わらずフォア・バックをキャプチャ可能)ヒント
このオプションにより通常ではキャプチャできないウィンドウがキャプチャできる可能性があります
キャプチャできないウィンドウ状態について
対象ウィンドウが最小化されている、または非表示になっている場合はキャプチャを行わず関数を終了しますこのオプションでウィンドウをキャプチャする場合は対象ウィンドウが表示状態になっていることを確認してください
- CHKIMG_METHOD_SQDIFF
- 類似度の計算にTM_SQDIFFを使用する、他の計算方法と併用不可
- CHKIMG_METHOD_SQDIFF_NORMED
- 類似度の計算にTM_SQDIFF_NORMEDを使用する、他の計算方法と併用不可
- CHKIMG_METHOD_CCORR
- 類似度の計算にTM_CCORRを使用する、他の計算方法と併用不可
- CHKIMG_METHOD_CCORR_NORMED
- 類似度の計算にTM_CCORR_NORMEDを使用する、他の計算方法と併用不可
- CHKIMG_METHOD_CCOEFF
- 類似度の計算にTM_CCOEFFを使用する、他の計算方法と併用不可
- CHKIMG_METHOD_CCOEFF_NORMED
- 類似度の計算にTM_CCOEFF_NORMEDを使用する、他の計算方法と併用不可計算方法未指定時はこれが適用される
モニタ番号 (定数 省略可) --
CHKIMG_USE_WGCAPI
時に検索するモニタ番号を0から指定、デフォルトは0 (プライマリモニタ)mousemorg使用時はウィンドウを対象とするためこの引数指定は不要
- 戻り値の型:
二次元配列
- 戻り値:
該当する部分の座標とスコアを格納した二次元配列
[[X座標, Y座標, スコア], ...]
サンプルコード
for found in chkimg("hoge.png") print found // [x, y, スコア] next
- chkimg(画像ファイルパス[, スコア=95, 最大検索数=5, 範囲, オプション=0])
- 配列による範囲指定
- パラメータ:
範囲 (配列 省略可) --
[left, top, right, bottom]
で指定
サンプルコード
found = chkimg("hoge.png", 95, 1, [100, 100, 400, 400])
- saveimg([ファイル名=EMPTY, ID=0, x=EMPTY, y=EMPTY, 幅=EMPTY, 高さ=EMPTY, クライアント領域=FALSE, 圧縮率=EMPTY, 取得方法=IMG_AUTO, WGCAPI=false, モニタ番号=0])#
- ウィンドウの画像を保存します
- パラメータ:
ファイル名 (文字列 省略可) --
保存するファイル名 (対応する拡張子は
jpg
,bmp
,png
)、EMPTYの場合はクリップボードにコピー拡張子が有効ではない場合
pngファイルとして保存されますsaveimg("hoge") // hoge.pngが保存される
ID (数値 省略可) -- ウィンドウID、0の場合スクリーン全体
x (数値 省略可) -- 取得範囲の起点となるx座標、EMPTYの場合は左上
y (数値 省略可) -- 取得範囲の起点となるy座標、EMPTYの場合は左上
幅 (数値 省略可) -- 取得範囲の幅、EMPTYの場合は
ウィンドウ幅 - x
高さ (数値 省略可) -- 取得範囲の高さ、EMPTYの場合は
ウィンドウ高さ - y
クライアント領域 (真偽値 省略可) -- FALSEならウィンドウ全体、TRUEならクライアント領域のみ
圧縮率 (数値 省略可) --
指定したファイル拡張子により指定値が異なりますファイル名を省略した(クリップボードにコピーされる)場合この値は無視されます- jpg
- JPEG画像の画質を0-100で指定します (高いほど高画質)EMPTY指定時、または値が範囲外の場合は95になります
- png
- PNG画像の圧縮度合いを0-9で指定します (高いほどサイズが小さくなるが、遅くなる)EMPTY指定時、または値が範囲外の場合は1になります
- bmp
この値は無視されます
UWSCとの違い
UWSCでは1-100指定ならJPEG、0ならBMPで保存されていましたが、UWSCRではファイル名の拡張子で保存形式を指定します取得方法 (定数 省略可) --
画面の取得方法
- IMG_FORE
スクリーン全体から対象ウィンドウの座標を元に画像を切り出す
- IMG_BACK
対象ウィンドウから画像を取得
注意
他のウィンドウに隠れていても取得可能ですが、見た目が完全に一致しない場合があります
- IMG_AUTO (0)
ウィンドウ全体が可視かどうかで取得方法を自動的に切り替えます
ウィンドウが見えていれば
IMG_FORE
を使用する (アクティブかどうかは問わない)一部でも他のウィンドウに隠れていれば
IMG_BACK
を使用する
WGCAPI (真偽値 省略可) -- TRUEならGraphicsCaptureAPIにより画面またはウィンドウをキャプチャします
モニタ番号 (数値 省略可) --
IDに0を指定して、かつWGCAPIをTRUEにした場合にキャプチャするモニタ番号を0から指定
xy座標は0から
xy座標はモニタごとの座標を0から指定してください0未満が指定された場合は0になります
- 戻り値:
なし
低レベル関数#
- mmv(x, y[, ms=0])#
- マウスカーソルを移動します
- パラメータ:
x (数値) -- 移動先のX座標
y (数値) -- 移動先のY座標
ms (数値 省略可) -- マウス移動を行うまでの待機時間 (ミリ秒)
- 戻り値:
なし
- btn(ボタン定数[, 状態=CLICK, x=EMPTY, y=EMPTY, ms=0])#
- 指定座標にマウスボタン操作を送信します
- パラメータ:
ボタン定数 (定数) --
操作するマウスボタンを指定
- LEFT
左クリック
- RIGHT
右クリック
- MIDDLE
ホイルクリック
- WHEEL
ホイル回転 (上下方向)
- WHEEL2
ホイル回転 (左右方向)
- TOUCH
- タッチ操作を行う状態をCLICKにした場合指定座標をタッチして離す状態をDOWNにした場合指定座標でタッチその後状態をUPで再実行した場合同一座標ならそのまま離し、座標が異なるならその座標までスワイプ操作を行うmsを指定した場合はスワイプ速度に影響する (移動区間の一区切り毎の移動速度を変更する)
重要
タッチできるのは一点のみ (複数箇所タッチは不可)
状態 (定数 省略可) --
マウスボタンに対してどのような操作を行うかを指定
LEFT
,RIGHT
,MIDDLE
の場合以下のいずれかを指定- CLICK
ボタンクリック (デフォルト)
- DOWN
ボタン押し下げ
- UP
ボタン開放
WHEEL
: ノッチ数を指定 (正なら上方向、負なら下方向に回転)WHEEL2
: ノッチ数を指定 (正なら右方向、負なら左方向に回転)
x (数値 省略可) -- ボタン操作を行う位置のX座標、省略時は現在のマウスのX座標
y (数値 省略可) -- ボタン操作を行う位置のY座標、省略時は現在のマウスのY座標
ms (数値 省略可) --
ボタン操作を行うまでの待機時間 (ミリ秒)またはTOUCHのDOWN後のUPで別座標を指定した場合のスワイプ速度、0 (速)~10 (遅)
- 戻り値:
なし
サンプルコード
btn(TOUCH, DOWN, 100, 100) btn(TOUCH, UP, 200, 200) // 別座標でUPした場合はスワイプ操作になる btn(TOUCH, DOWN, 150, 150) btn(TOUCH, UP, 250, 250, 0) // msが0なら最速 btn(TOUCH, DOWN, 300, 300) btn(TOUCH, UP, 150, 150, 10) // 10ならとても遅い
- kbd(仮想キー[, 状態=CLICK, ms=0])#
- kbd(送信文字列[, 状態=CLICK, ms=0])
- キーボード入力を送信します
- パラメータ:
仮想キー (定数) -- 仮想キーコード一覧 のいずれか
送信文字列 (文字列) -- キー入力として送信される文字列
状態 (定数 省略可) --
キーの入力状態を指定、文字列送信時は無視される
- CLICK
キークリック (デフォルト)
- DOWN
キー押し下げ
- UP
キー開放
ms (数値 省略可) -- キーボード入力を行うまでの待機時間 (ミリ秒)
- 戻り値:
なし
サンプルコード
// a が入力される kbd(VK_A) // A が入力される kbd(VK_SHIFT, DOWN) kbd(VK_A, CLICK, 100) kbd(VK_SHIFT, UP, 100) // A が入力される kbd("A") // あ が入力される kbd("あ") // abcde が入力される kbd("abcde")
- acw(ID[, x=EMPTY, y=EMPTY, h=EMPTY, w=EMPTY, ms=0])#
- ウィンドウの位置やサイズを変更しますID0 を更新します
- パラメータ:
ID (数値) -- ウィンドウID
x (数値 省略可) -- 移動先のX座標、省略時は対象ウィンドウの現在のX座標
y (数値 省略可) -- 移動先のY座標、省略時は対象ウィンドウの現在のY座標
h (数値 省略可) -- 変更するウィンドウの高さ、省略時は対象ウィンドウの現在の高さ
w (数値 省略可) -- 変更するウィンドウの幅、省略時は対象ウィンドウの現在の幅
ms (数値 省略可) -- ウィンドウに変更を加えるまでの待機時間 (ミリ秒)
- 戻り値:
なし
サンプルコード
acw(getid(GET_ACTIVE_WIN), 100, 100) // ID0を更新 sleep(1) acw(0, 200, 200)
仮想キーコード一覧#
- VK_A
- VK_B
- VK_C
- VK_D
- VK_E
- VK_F
- VK_G
- VK_H
- VK_I
- VK_J
- VK_K
- VK_L
- VK_M
- VK_N
- VK_O
- VK_P
- VK_Q
- VK_R
- VK_S
- VK_T
- VK_U
- VK_V
- VK_W
- VK_X
- VK_Y
- VK_Z
- VK_0
- VK_1
- VK_2
- VK_3
- VK_4
- VK_5
- VK_6
- VK_7
- VK_8
- VK_9
- VK_START
- VK_BACK
- VK_TAB
- VK_CLEAR
- VK_ESC
- VK_ESCAPE
- VK_RETURN
- VK_ENTER
- VK_RRETURN
- VK_SHIFT
- VK_RSHIFT
- VK_WIN
- VK_RWIN
- VK_ALT
- VK_MENU
- VK_RALT
- VK_CTRL
- VK_CONTROL
- VK_RCTRL
- VK_PAUSE
- VK_CAPITAL
- VK_KANA
- VK_FINAL
- VK_KANJI
- VK_CONVERT
- VK_NONCONVERT
- VK_ACCEPT
- VK_MODECHANGE
- VK_SPACE
- VK_PRIOR
- VK_NEXT
- VK_END
- VK_HOME
- VK_LEFT
- VK_UP
- VK_RIGHT
- VK_DOWN
- VK_SELECT
- VK_PRINT
- VK_EXECUTE
- VK_SNAPSHOT
- VK_INSERT
- VK_DELETE
- VK_HELP
- VK_APPS
- VK_MULTIPLY
- VK_ADD
- VK_SEPARATOR
- VK_SUBTRACT
- VK_DECIMAL
- VK_DIVIDE
- VK_NUMPAD0
- VK_NUMPAD1
- VK_NUMPAD2
- VK_NUMPAD3
- VK_NUMPAD4
- VK_NUMPAD5
- VK_NUMPAD6
- VK_NUMPAD7
- VK_NUMPAD8
- VK_NUMPAD9
- VK_F1
- VK_F2
- VK_F3
- VK_F4
- VK_F5
- VK_F6
- VK_F7
- VK_F8
- VK_F9
- VK_F10
- VK_F11
- VK_F12
- VK_NUMLOCK
- VK_SCROLL
- VK_PLAY
- VK_ZOOM
- VK_SLEEP
- VK_BROWSER_BACK
- VK_BROWSER_FORWARD
- VK_BROWSER_REFRESH
- VK_BROWSER_STOP
- VK_BROWSER_SEARCH
- VK_BROWSER_FAVORITES
- VK_BROWSER_HOME
- VK_VOLUME_MUTE
- VK_VOLUME_DOWN
- VK_VOLUME_UP
- VK_MEDIA_NEXT_TRACK
- VK_MEDIA_PREV_TRACK
- VK_MEDIA_STOP
- VK_MEDIA_PLAY_PAUSE
- VK_LAUNCH_MEDIA_SELECT
- VK_LAUNCH_MAIL
- VK_LAUNCH_APP1
- VK_LAUNCH_APP2
- VK_OEM_PLUS
- VK_OEM_COMMA
- VK_OEM_MINUS
- VK_OEM_PERIOD
- VK_OEM_1
- VK_OEM_2
- VK_OEM_3
- VK_OEM_4
- VK_OEM_5
- VK_OEM_6
- VK_OEM_7
- VK_OEM_8
- VK_OEM_RESET
- VK_OEM_JUMP
- VK_OEM_PA1
- VK_OEM_PA2
- VK_OEM_PA3