CHKBTNチェックボタン関数

本ページには広告が含まれています。

ボタン類の状態を返します。

構文
  1. 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に出力されます。

UWSC
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

取得例

メモ帳
UWSC
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

記述例

ボタン・チェックボックスの状態を取得

_置換_結果.png
UWSC
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」が返ります。

add-on.png
UWSC
DIM ID = GETID("アドオンを有効にする", "#32770")

PRINT CHKBTN(ID, "Java(tm) Plug-In 2 SSV Helper")
結果
プレーンテキスト
1

チェックボックスにチェックを入れる

メモ帳を起動し、置換の「大文字と小文字を区別する」と「折り返しあり」にチェックを入れます。

_置換.png
UWSC
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

使い方

アクティブウィンドウの操作できる項目を取得します。

UWSC
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関数を使います。