ウィンドウ操作関数#

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について#

ウィンドウIDを使う一部の関数が実行されると、その関数の対象となったウィンドウが ID0 に記憶されます
次に同様の関数が実行されると 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 と同等)
      複数指定時の検索順は以下の通り
      1. CLK_BTN

      2. CLK_LIST

      3. CLK_TAB

      4. CLK_MENU

      5. CLK_TREEVIEW

      6. CLK_LISTVIEW

      7. CLK_TOOLBAR

      8. 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 or CLK_UIA or CLK_ACC と同等)
      クリック方式が複数指定された場合の適用順は以下の通り
      1. CLK_API

      2. CLK_UIA

      3. 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, btn 及び kbd 関数のマウス・キー操作をウィンドウに直接送信(PostMessage)する
    送信するメッセージは以下 (対象ウィンドウがこれらのメッセージを処理しない場合操作は無効となる)

    関数

    操作

    メッセージ

    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
    スクリーン上から画像を取得する (chkimg)、または色を得る (peekcolor)
    MORG_BACK
    対象ウィンドウから直接画像の取得 (chkimg)、または色の取得 (peekcolor) を試みる
    他のウィンドウに隠れている場合でも使用可能

    動作しない場合

    対象ウィンドウによっては正常に動作しない可能性があります
    例: 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