- 構文
- Integer = GETITEM( ID, 種別, [番号, リストビュー列, ディセーブルフラグ, 最大取得数] )
- 引数
- ID
- Windowを識別するID
- 種別
- (複数指定可)
- 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
- アクセシビリティ経由:クリック可能な物
- ITM_ACCCLK2
- アクセシビリティ経由:クリック可能な物(選択可のテキストも含める)
- ITM_ACCTXT
- アクセシビリティ経由:スタティク文字
- ITM_ACCEDIT
- アクセシビリティ経由:エディト内文字
- ITM_FROMLAST
- アクセシビリティ経由(ITM_ACC*)指定時に後ろからサーチする
- ITM_BACK
- アクセシビリティ経由(ITM_ACC*)指定時にアクティブにしない
- 番号
- ITM_LIST、ITM_TREEVIEW、ITM_LISTVIEW 複数存在時は左上からの順番を指定(-1にて全コントロール取得)
- リストビュー列
- リストビュー指定時のリストビューの列を指定(-1にてカラム名取得)
- ディセーブル
- FALSE
- ディセーブルな物も取得(デフォルト)
- TRUE
- ディセーブルな物はを取得しない
- 最大取得数
- アクセシビリティ経由(ITM_ACC*)指定時に取得する数を制限する
- 戻値
取得した数を返す(For In 構文にて指定された場合は各要素を返す)
取得した情報は配列変数のALL_ITEM_LIST[ ]に格納される(配列はゼロから)
プログラム実行例
CLKITEMで操作できる項目を取得
HASHTBL NAME
NAME[ITM_BTN] = "ITM_BTN"
NAME[ITM_LIST] = "ITM_LIST"
NAME[ITM_TAB] = "ITM_TAB"
NAME[ITM_MENU] = "ITM_MENU"
NAME[ITM_TREEVIEW] = "ITM_TREEVIEW"
NAME[ITM_LISTVIEW] = "ITM_LISTVIEW"
NAME[ITM_EDIT] = "ITM_EDIT"
NAME[ITM_STATIC] = "ITM_STATIC"
NAME[ITM_STATUSBAR] = "ITM_STATUSBAR"
NAME[ITM_TOOLBAR] = "ITM_TOOLBAR"
NAME[ITM_LINK] = "ITM_LINK"
NAME[ITM_ACCCLK] = "ITM_ACCCLK"
NAME[ITM_ACCCLK2] = "ITM_ACCCLK2"
NAME[ITM_ACCTXT] = "ITM_ACCTXT"
NAME[ITM_ACCEDIT] = "ITM_ACCEDIT"
NAME[ITM_FROMLAST] = "ITM_FROMLAST"
SETHOTKEY(VK_ESC, EMPTYPARAM, "forceQuit")
WHILE TRUE
FUKIDASI("ALT+Sでカーソル下の情報を取得します<#CR>ESCで終了")
IF GETKEYSTATE(VK_ALT) AND GETKEYSTATE(VK_S) THEN BREAK
WEND
FUKIDASI("取得中")
DIM ID = GETID(GET_FROMPOINT_WIN)
PRINT "DIM ID = GETID(<#DBL>" + STATUS(ID, ST_TITLE) + "<#DBL>, <#DBL>" + STATUS(ID, ST_CLASS) + "<#DBL>)"
PRINT
DIM items[] = ITM_BTN, ITM_LIST, ITM_TAB, ITM_MENU, ITM_TREEVIEW, ITM_LISTVIEW, ITM_EDIT, ITM_STATIC, ITM_STATUSBAR, ITM_TOOLBAR, ITM_LINK, ITM_ACCCLK, ITM_ACCCLK2, ITM_ACCTXT, ITM_ACCEDIT, ITM_FROMLAST
FOR item IN items
PRINT "// [" + NAME[item] + "]"
FOR arr IN GETITEM(ID, item)
PRINT "CLKITEM(ID, <#DBL>" + arr + "<#DBL>, " + NAME[item] + ")"
NEXT
PRINT
NEXT
//////////////////////////////////////////////////
// 【引数】
//
// 【戻値】
//
//////////////////////////////////////////////////
PROCEDURE forceQuit()
EXITEXIT
FEND
解説
- 1行目
連想配列NAMEを宣言。HASHTBL NAME
- 3-18行目
NAME[ITM_BTN] = "ITM_BTN" NAME[ITM_LIST] = "ITM_LIST" NAME[ITM_TAB] = "ITM_TAB" NAME[ITM_MENU] = "ITM_MENU" NAME[ITM_TREEVIEW] = "ITM_TREEVIEW" NAME[ITM_LISTVIEW] = "ITM_LISTVIEW" NAME[ITM_EDIT] = "ITM_EDIT" NAME[ITM_STATIC] = "ITM_STATIC" NAME[ITM_STATUSBAR] = "ITM_STATUSBAR" NAME[ITM_TOOLBAR] = "ITM_TOOLBAR" NAME[ITM_LINK] = "ITM_LINK" NAME[ITM_ACCCLK] = "ITM_ACCCLK" NAME[ITM_ACCCLK2] = "ITM_ACCCLK2" NAME[ITM_ACCTXT] = "ITM_ACCTXT" NAME[ITM_ACCEDIT] = "ITM_ACCEDIT" NAME[ITM_FROMLAST] = "ITM_FROMLAST"
- 20行目
ESCキーでforceQuit関数を実行。SETHOTKEY(VK_ESC, EMPTYPARAM, "forceQuit")
- 22-25行目
「ALT+S」が入力されるのを待つ。WHILE TRUE FUKIDASI("ALT+Sでカーソル下の情報を取得します<#CR>ESCで終了") IF GETKEYSTATE(VK_ALT) AND GETKEYSTATE(VK_S) THEN BREAK WEND
- 26行目
吹き出しを表示。FUKIDASI("取得中")
- 28行目
マウスカーソル下のウィンドウのIDを取得。DIM ID = GETID(GET_FROMPOINT_WIN)
- 33行目
DIM items[] = ITM_BTN, ITM_LIST, ITM_TAB, ITM_MENU, ITM_TREEVIEW, ITM_LISTVIEW, ITM_EDIT, ITM_STATIC, ITM_STATUSBAR, ITM_TOOLBAR, ITM_LINK, ITM_ACCCLK, ITM_ACCCLK2, ITM_ACCTXT, ITM_ACCEDIT, ITM_FROMLAST
- 35-41行目
FOR item IN items PRINT "// [" + NAME[item] + "]" FOR arr IN GETITEM(ID, item) PRINT "CLKITEM(ID, <#DBL>" + arr + "<#DBL>, " + NAME[item] + ")" NEXT PRINT NEXT
メモ帳のメニューを取得・出力
DIM ID = EXEC("notepad")
FOR item IN GETITEM(ID, ITM_MENU)
PRINT item
NEXT
CTRLWIN(ID, CLOSE)
- 結果
- ファイル\新規
ファイル\新しいウィンドウ
ファイル\開く
ファイル\上書き保存
ファイル\名前を付けて保存
ファイル\ページ設定
ファイル\印刷
ファイル\メモ帳の終了
編集\元に戻す
編集\切り取り
編集\コピー
編集\貼り付け
編集\削除
編集\Bing で検索
編集\検索
編集\次を検索
編集\前を検索
編集\置換
編集\行へ移動
編集\すべて選択
編集\日付と時刻
書式\右端で折り返す
書式\フォント
表示\ズーム\拡大
表示\ズーム\縮小
表示\ズーム\既定の倍率に戻す
表示\ステータス バー
ヘルプ\ヘルプの表示
ヘルプ\フィードバックの送信
ヘルプ\バージョン情報
解説
- 1行目
メモ帳を起動し、IDを取得。DIM ID = EXEC("notepad")
- 3-5行目
メニューを配列で取得し、出力。FOR item IN GETITEM(ID, ITM_MENU) PRINT item NEXT
- 7行目
メモ帳を閉じる。CTRLWIN(ID, CLOSE)