GETITEM

構文
  1. 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. 1行目
    HASHTBL NAME
    連想配列NAMEを宣言。
  2. 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"
  3. 20行目
    SETHOTKEY(VK_ESC, EMPTYPARAM, "forceQuit")
    ESCキーでforceQuit関数を実行。
  4. 22-25行目
    WHILE TRUE FUKIDASI("ALT+Sでカーソル下の情報を取得します<#CR>ESCで終了") IF GETKEYSTATE(VK_ALT) AND GETKEYSTATE(VK_S) THEN BREAK WEND
    「ALT+S」が入力されるのを待つ。
  5. 26行目
    FUKIDASI("取得中")
    吹き出しを表示。
  6. 28行目
    DIM ID = GETID(GET_FROMPOINT_WIN)
    マウスカーソル下のウィンドウのIDを取得。
  7. 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
  8. 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. 1行目
    DIM ID = EXEC("notepad")
    メモ帳を起動し、IDを取得。
  2. 3-5行目
    FOR item IN GETITEM(ID, ITM_MENU) PRINT item NEXT
    メニューを配列で取得し、出力。
  3. 7行目
    CTRLWIN(ID, CLOSE)
    メモ帳を閉じる。