本ページには広告が含まれています。
目次
引数に指定したIDのウィンドウの文字列を取得します。取得した文字列を返します。
- 構文
- UString = GETSTR( ID, 番号, 種別, マウス移動 )
- 引数
- ID (Integer)必須
- Windowを識別するID
(ID = 0 であれば クリップボードから) - 番号 (Integer = 0)省略可
- 左上から数えたコントロールの順番 (1から指定、マイナスを付けた場合にはDisable状態のものもカウント)
(0:デフォルトはフォーカスを持ったコントロール)
(ステータスバー指定時はパーツ) - 種別 (#getstr = STR_EDIT)省略可
- STR_EDIT (0)
- エディトコントロール(デフォルト)
- STR_STATIC (1)
- スタティクコントロール
- STR_STATUS (2)
- ステータスバー
- STR_ACC_EDIT (3)
- アクセシビリティ経由:エディト内文字
- STR_ACC_STATIC (4)
- アクセシビリティ経由:スタティク文字
- STR_ACC_CELL (5)
- DataGridView内のCell値を取得
- マウス移動 (Boolean = False)省略可
- FALSE
- マウス移動なし(デフォルト)
- TRUE
- マウスをその場所に移動させる
- 戻り値
取得した文字列
(指定物が存在しない場合にはEMPTYを返す)
使い方
アクティブウィンドウのGETSTR関数で取得できる項目のプログラムを実行したプログラムと同じディレクトリにGETSTR.logというファイル名で出力します。
GETSTR関数の番号(第二引数)、種別(第三引数)に指定できるすべての項目を出力します。このGETSTR関数のプログラムを実行したときの結果を// の後ろに記載してます。
OPTION LOGPATH = "GETSTR.log"
OPTION LOGFILE = 6
FOR sec = 3 TO 1 STEP -1
FUKIDASI(sec + "秒後にアクティブなウィンドウの情報を取得します。")
SLEEP(1.000)
NEXT
DIM ID = GETID(GET_ACTIVE_WIN)
PRINT "DIM ID = GETID(<#DBL>" + STATUS(ID, ST_TITLE) + "<#DBL>, <#DBL>" + STATUS(ID, ST_CLASS) + "<#DBL>)"
PRINT
FUKIDASI("「" + STATUS(ID, ST_TITLE) + "」…取得中")
HASHTBL ITEMS
ITEMS["STR_EDIT"] = STR_EDIT
ITEMS["STR_STATIC"] = STR_STATIC
ITEMS["STR_STATUS"] = STR_STATUS
ITEMS["STR_ACC_EDIT"] = STR_ACC_EDIT
ITEMS["STR_ACC_STATIC"] = STR_ACC_STATIC
HASHTBL COUNT
COUNT["STR_EDIT"] = GETITEM(ID, ITM_EDIT, -1)
COUNT["STR_STATIC"] = GETITEM(ID, ITM_STATIC, -1)
COUNT["STR_STATUS"] = GETITEM(ID, ITM_STATUSBAR, -1)
COUNT["STR_ACC_EDIT"] = GETITEM(ID, ITM_ACCTXT, -1)
COUNT["STR_ACC_STATIC"] = GETITEM(ID, ITM_ACCTXT, -1)
FOR i = 0 TO LENGTH(ITEMS) - 1
DIM item = ITEMS[i, HASH_KEY]
DIM len = COUNT[item]
PRINT "//////////////////////////////////////////////////"
PRINT "// " + item
PRINT "//////////////////////////////////////////////////"
FOR j = 0 TO len - 1
GETSTRList(id, i, j, ITEMS)
NEXT
FOR j = 0 TO (-1 * (len - 1)) STEP -1
GETSTRList(id, i, j, ITEMS)
NEXT
PRINT
NEXT
PROCEDURE GETSTRList(id, i, j, ITEMS[])
DIM str = GETSTR(id, j, ITEMS[i, HASH_VAL])
IFB LENGTH(str) <> 0 THEN
res = "PRINT GETSTR(ID, " + j + ", " + ITEMS[i, HASH_KEY] + ")" + "<#TAB>// <#DBL>" + str + "<#DBL>"
IFB j <> 0 THEN
IFB ITEMS[i,HASH_KEY] = "STR_EDIT" THEN
res = res + "<#TAB>// SENDSTR(ID, <#DBL>" + str + "<#DBL>, " + j + ", TRUE)"
ELSEIF ITEMS[i, HASH_KEY] = "STR_ACC_EDIT" THEN
res = res + "<#TAB>// SENDSTR(ID, <#DBL>" + str + "<#DBL>, " + j + ", TRUE, TRUE)"
ENDIF
ENDIF
PRINT res
ENDIF
FEND
取得例
メモ帳
DIM ID = GETID("無題 - メモ帳", "Notepad")
//////////////////////////////////////////////////
// STR_EDIT
//////////////////////////////////////////////////
//////////////////////////////////////////////////
// STR_STATIC
//////////////////////////////////////////////////
PRINT GETSTR(ID, 0, STR_STATIC) // "無題 - メモ帳"
PRINT GETSTR(ID, 0, STR_STATIC) // "無題 - メモ帳"
//////////////////////////////////////////////////
// STR_STATUS
//////////////////////////////////////////////////
PRINT GETSTR(ID, 2, STR_STATUS) // "1 行、1 列"
PRINT GETSTR(ID, 3, STR_STATUS) // "100%"
PRINT GETSTR(ID, 4, STR_STATUS) // "Windows (CRLF)"
PRINT GETSTR(ID, -2, STR_STATUS) // "1 行、1 列"
PRINT GETSTR(ID, -3, STR_STATUS) // "100%"
PRINT GETSTR(ID, -4, STR_STATUS) // "Windows (CRLF)"
//////////////////////////////////////////////////
// STR_ACC_EDIT
//////////////////////////////////////////////////
//////////////////////////////////////////////////
// STR_ACC_STATIC
//////////////////////////////////////////////////
PRINT GETSTR(ID, 2, STR_ACC_STATIC) // "1 行、1 列"
PRINT GETSTR(ID, 3, STR_ACC_STATIC) // "100%"
PRINT GETSTR(ID, -2, STR_ACC_STATIC) // "1 行、1 列"
PRINT GETSTR(ID, -3, STR_ACC_STATIC) // "100%"
プログラム実行例
クリップボードの文字列を小文字にして返す
DIM str = STRCONV(GETSTR(0), SC_LOWERCASE)
SENDSTR(0, str)
PRINT str
使用関数
解説
クリップボードの文字列を大文字にして返す
DIM str = STRCONV(GETSTR(0), SC_UPPERCASE)
SENDSTR(0, str)
PRINT str
使用関数
解説
csvファイルをHTMLのテーブルデータにする(csvToHTML)
CSVのデータをHTML(テーブル)に変換します。
クリップボードにcsvファイルのパスをコピーして実行します。
CONST TemporaryFolder = 2
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM Folder = FSO.GetSpecialFolder(TemporaryFolder)
DIM folderspec = Folder.Path
DIM name = FSO.GetTempName
DIM TempPath = FSO.BuildPath(folderspec, name)
DIM path = GETSTR(0)
DIM FID = FOPEN(path, F_READ)
DIM FID2 = FOPEN(TempPath, F_READ OR F_WRITE)
FPUT(FID2, "<table>", F_ALLTEXT)
FOR row = 1 TO FGET(FID, F_LINECOUNT)
DIM col = 1
FPUT(FID2, "<#TAB><tr>", 0)
WHILE FGET(FID, row, col) <> ""
FPUT(FID2, "<#TAB><#TAB><td>" + (FGET(FID, row, col)) + "</td>", 0)
col = col + 1
WEND
FPUT(FID2, "<#TAB></tr>", 0)
NEXT
FPUT(FID2,"</table>", 0)
FCLOSE(FID)
FCLOSE(FID2)
FID = FOPEN(TempPath, F_READ)
SENDSTR(0, FGET(FID, F_ALLTEXT))
PRINT FGET(FID, F_ALLTEXT)
FCLOSE(FID)
使用関数
解説
メモ帳のステータスバー情報を取得
DIM ID = EXEC("notepad")
FOR i = 0 TO 5
PRINT i + "<#TAB>" + GETSTR(ID, i, STR_STATUS)
NEXT
結果
0
1
2 1 行、1 列
3 100%
4 Windows (CRLF)
5 UTF-8
使用関数
Internet ExplorerのタイトルとURLを取得
DIM ID = GETID("Internet Explorer")
PRINT GETSTR(ID, 0, STR_STATIC)
PRINT GETSTR(ID, 1, STR_EDIT)
使用関数
ペイントで設定できるズーム倍率を取得
DIM ID = EXEC("mspaint")
SETSLIDER(ID, 0, 0)
PRINT GETSTR(ID, 2, STR_STATIC)
REPEAT
CLKITEM(ID, "拡大", CLK_BTN)
PRINT GETSTR(ID, 2, STR_STATIC)
UNTIL GETSLIDER(ID, 0, SLD_POS) = 100
CTRLWIN(ID, CLOSE2)
結果
12.50%
25%
50%
100%
200%
300%
400%
500%
600%
700%
800%
使用関数
解説
関連記事
- GETITEM関数 (スクリプト関数)
- 指定したIDのウィンドウのキャプション文字やリストなどを取得します。取得した情報は配列変数のALL_ITEM_LIST[ ]に格納されます。戻値は取得した数でInteger型です。
- ACW関数 (スクリプト関数)
- 指定したIDのウィンドウの位置・サイズを変更します。IDのみを指定した場合、そのウィンドウをアクティブにします。
- CHKBTN関数 (スクリプト関数)
- 指定したIDのウィンドウにあるチェックボックス・ラジオボタンがチェックされているかを返します。
- CLKITEM関数 (スクリプト関数)
- 指定したIDのウィンドウのアイテムをクリックします。アイテムに指定できるものにはボタン・チェックボックス・ラジオボタン・リストボックス・コンボボックス・タブコントロール・メニュー・ツリービュー・リストビュー・ツールバー・リンクがあります。
- GETID関数 (スクリプト関数)
- 指定したウィンドウのIDを取得します。第一引数に取得したいウィンドウのタイトル(一部でも可)を指定します。UWSCでウィンドウを操作するのによく使う関数です。
- HNDTOID関数 (スクリプト関数)
- 引数に指定したハンドル値をIDに変換して返します。IDをハンドル値に変換するにはIDTOHND関数を使います。
- CTRLWIN関数 (スクリプト関数)
- ウィンドウの状態を操作します。ウィンドウを終了、アクティブ化、表示・非表示、最大化・最小化などができます。
- GETALLWIN関数 (スクリプト関数)
- 全ウィンドウのIDを取得します。
- IDTOHND関数 (スクリプト関数)
- 引数に指定したIDをハンドル値に変換して返します。ハンドル値をIDに変換するにはHNDTOID関数を使います。
- MOUSEORG関数 (スクリプト関数)
- マウス座標を相対座標にする、 またはマウスとキー情報を直接ウィンドウへ送ります。