本ページには広告が含まれています。
目次
ボタン類の状態を返します。
- 構文
- return = CHKBTN( ID, アイテム名, 番号, ACC指定 )
- 引数
- ID (Integer)必須
- Windowを識別するID
- アイテム名 (String)必須
- ボタン、チェックボックス、ラジオボタンのキャプションの文字
- 番号 (Integer = 1)省略可
- 同名がある場合のオブジェクト順番 (左上から数えた順番[1から指定])
- ACC指定 (Integer = False)省略可
- FALSE
- API もしくは UIA インターフェースを使用 (デフォルト)
- TRUE
- アクセシビリティ用インターフェースを利用
- 2
- アクセシビリティ用インターフェースを利用(ウィンドウをアクティブ化しない)
- 戻り値
- -1(SByte型)
- 存在しないか無効状態
- 0(Int64型)
- OFF
- 1(Int64型)
- ON
- 2(Int64型)
- チェックボックスにて淡色状態
アイテム名の取得
アクティブウィンドウのCHKBTN関数で取得できるボタンとそのボタンの状態を出力します。結果は実行したUWSファイルと同じディレクトリのCHKBTN.logに出力されます。
OPTION LOGPATH = "CHKBTN.log"
OPTION LOGFILE = 6
HASHTBL ITEMS
DIM array[] = "BTN", "TAB", "MENU"
FOR sec = 3 TO 1 STEP -1
FUKIDASI(sec + "秒後にアクティブなウィンドウの情報を取得します。")
SLEEP(1.000)
NEXT
DIM ID = GETID(GET_ACTIVE_WIN)
FUKIDASI("「" + STATUS(ID, ST_TITLE) + "」…取得中")
FOR item IN array
FOR i = 0 TO EVAL("GETITEM(ID, ITM_" + item + ", -1, -1)") -1
IF ALL_ITEM_LIST[i] = "" THEN CONTINUE
ITEMS[ALL_ITEM_LIST[i]] = ""
NEXT
NEXT
PRINT "DIM ID = GETID(<#DBL>" + STATUS(ID, ST_TITLE) + "<#DBL>, <#DBL>" + STATUS(ID, ST_CLASS) + "<#DBL>)"
PRINT
FOR i = 0 TO LENGTH(ITEMS)-1
item = ITEMS[i, HASH_KEY]
DIM n = 0
WHILE TRUE
n = n + 1
DIM flg = FALSE
FOR j = 0 TO 1
DIM acc = VARTYPE(j, VAR_BOOLEAN)
cmd = "CHKBTN(ID, <#DBL>" + item + "<#DBL>, " + n + ", " + acc + ")"
IFB EVAL(cmd) <> -1 THEN
flg = TRUE
PRINT cmd + "<#TAB>// " + EVAL(cmd)
BREAK
ENDIF
NEXT
IF !flg THEN BREAK
WEND
NEXT
取得例
メモ帳
DIM ID = GETID("無題 - メモ帳", "Notepad")
CHKBTN(ID, "1 行上", 1, True) // 0
CHKBTN(ID, "1 行下", 1, True) // 0
CHKBTN(ID, "最小化", 1, False) // 0
CHKBTN(ID, "最大化", 1, False) // 0
CHKBTN(ID, "閉じる", 1, False) // 0
記述例
ボタン・チェックボックスの状態を取得
DIM ID = EXEC("notepad")
CLKITEM(ID, "編集\置換", ITM_MENU)
DIM ID2 = GETID("置換", "#32770")
PRINT "大文字と小文字を区別する:" + CHKBTN(ID2, "大文字と小文字を区別する")
PRINT "折り返しあり:" + CHKBTN(ID2, "折り返しあり")
PRINT "次を検索:" + CHKBTN(ID2, "次を検索")
PRINT "置換して次に:" + CHKBTN(ID2, "置換して次に")
PRINT "すべて置換:" + CHKBTN(ID2, "すべて置換")
PRINT "キャンセル:" + CHKBTN(ID2, "キャンセル")
- 結果
大文字と小文字を区別する:1 折り返しあり:1 次を検索:-1 置換して次に:-1 すべて置換:-1 キャンセル:0
チェックボックスの選択状態を取得
チェックボックスにチェックが入っていれば「1」、入っていなければ「0」が返ります。
DIM ID = GETID("アドオンを有効にする", "#32770")
PRINT CHKBTN(ID, "Java(tm) Plug-In 2 SSV Helper")
- 結果
1
チェックボックスにチェックを入れる
メモ帳を起動し、置換の「大文字と小文字を区別する」と「折り返しあり」にチェックを入れます。
DIM ID = EXEC("notepad")
CLKITEM(ID, "編集\置換", ITM_MENU)
DIM ID2 = GETID("置換", "#32770")
WHILE !CHKBTN(ID2, "大文字と小文字を区別する")
CLKITEM(ID2, "大文字と小文字を区別する", ITM_BTN)
WEND
WHILE !CHKBTN(ID2, "折り返しあり")
CLKITEM(ID2, "折り返しあり", ITM_BTN)
WEND
使い方
アクティブウィンドウの操作できる項目を取得します。
OPTION LOGPATH = "CHKBTN.log"
OPTION LOGFILE = 6
HASHTBL ITEMS
DIM array[] = "BTN", "TAB", "MENU"
FOR sec = 3 TO 1 STEP -1
FUKIDASI(sec + "秒後にアクティブなウィンドウの情報を取得します。")
SLEEP(1.000)
NEXT
DIM ID = GETID(GET_ACTIVE_WIN)
FUKIDASI("取得中")
FOR item IN array
FOR i = 0 TO EVAL("GETITEM(ID, ITM_" + item + ", -1, -1)") -1
IF ALL_ITEM_LIST[i] = "" THEN CONTINUE
ITEMS[ALL_ITEM_LIST[i]] = ""
NEXT
NEXT
PRINT "DIM ID = GETID(<#DBL>" + STATUS(ID, ST_TITLE) + "<#DBL>, <#DBL>" + STATUS(ID, ST_CLASS) + "<#DBL>)"
PRINT
FOR i = 0 TO LENGTH(ITEMS)-1
item = ITEMS[i, HASH_KEY]
DIM n = 0
WHILE TRUE
n = n + 1
DIM flg = FALSE
FOR j = 0 TO 1
DIM acc = VARTYPE(j, VAR_BOOLEAN)
cmd = "CHKBTN(ID, <#DBL>" + item + "<#DBL>, " + n + ", " + acc + ")"
IFB EVAL(cmd) <> -1 THEN
flg = TRUE
PRINT cmd
BREAK
ENDIF
NEXT
IF !flg THEN BREAK
WEND
NEXT
- 結果
DIM ID = GETID("無題 - メモ帳", "Notepad") CHKBTN(ID, "1 行上", 1, False) CHKBTN(ID, "上へドラッグ", 1, False) CHKBTN(ID, "下へドラッグ", 1, False) CHKBTN(ID, "1 行下", 1, False) CHKBTN(ID, "最小化", 1, False) CHKBTN(ID, "最大化", 1, False) CHKBTN(ID, "閉じる", 1, False)
関連記事
- CLKITEM関数 (スクリプト関数)
- 指定したIDのウィンドウのアイテムをクリックします。アイテムに指定できるものにはボタン・チェックボックス・ラジオボタン・リストボックス・コンボボックス・タブコントロール・メニュー・ツリービュー・リストビュー・ツールバー・リンクがあります。
- GETITEM関数 (スクリプト関数)
- 指定したIDのウィンドウのキャプション文字やリストなどを取得します。取得した情報は配列変数のALL_ITEM_LIST[ ]に格納されます。戻値は取得した数でInteger型です。
- GETCTLHND関数 (スクリプト関数)
- ボタン等、オブジェクトのハンドルを取得します。
- SLCTBOX関数 (スクリプト関数)
- セレクトボックスを表示します。第一引数に選択肢の種別、第二引数にタイムアウト時間、第三引数が数値ならx座標、第四引数にy座標、第三引数が数値でなければメッセージ、メッセージの次の引数に項目を指定します。
- ACW関数 (スクリプト関数)
- 指定したIDのウィンドウの位置・サイズを変更します。IDのみを指定した場合、そのウィンドウをアクティブにします。
- CTRLWIN関数 (スクリプト関数)
- ウィンドウの状態を操作します。ウィンドウを終了、アクティブ化、表示・非表示、最大化・最小化などができます。
- GETID関数 (スクリプト関数)
- 指定したウィンドウのIDを取得します。第一引数に取得したいウィンドウのタイトル(一部でも可)を指定します。UWSCでウィンドウを操作するのによく使う関数です。
- GETSLIDER関数 (スクリプト関数)
- スライダー(トラックバー、スクロールバー)の値を取得します。
- HNDTOID関数 (スクリプト関数)
- 引数に指定したハンドル値をIDに変換して返します。IDをハンドル値に変換するにはIDTOHND関数を使います。
- IDTOHND関数 (スクリプト関数)
- 引数に指定したIDをハンドル値に変換して返します。ハンドル値をIDに変換するにはHNDTOID関数を使います。