GETSTRゲットストリング関数

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

引数に指定したIDのウィンドウの文字列を取得します。取得した文字列を返します。

構文
  1. 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関数のプログラムを実行したときの結果を// の後ろに記載してます。

UWSC
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("ID = " + ID + " " + STATUS(ID, ST_TITLE) + " " + STATUS(ID, ST_CLASS) + " 取得中")

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

取得例

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

プログラム実行例

クリップボードの文字列を小文字にして返す

UWSC
DIM str = STRCONV(GETSTR(0), SC_LOWERCASE)
SENDSTR(0, str)
PRINT str
使用関数

クリップボードの文字列を大文字にして返す

UWSC
DIM str = STRCONV(GETSTR(0), SC_UPPERCASE)
SENDSTR(0, str)
PRINT str
使用関数

csvファイルをHTMLのテーブルデータにする(csvToHTML)

CSVのデータをHTML(テーブル)に変換します。

クリップボードにcsvファイルのパスをコピーして実行します。

UWSC
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)
使用関数

メモ帳のステータスバー情報を取得

UWSC
DIM ID = EXEC("notepad")

FOR i = 0 TO 5
	PRINT i + "<#TAB>" + GETSTR(ID, i, STR_STATUS)
NEXT
結果
UWSC
0	
1	
2	1 行、1 列
3	100%
4	Windows (CRLF)
5	UTF-8
使用関数

Internet ExplorerのタイトルとURLを取得

UWSC
DIM ID = GETID("Internet Explorer")

PRINT GETSTR(ID, 0, STR_STATIC)
PRINT GETSTR(ID, 1, STR_EDIT)
使用関数

ペイントで設定できるズーム倍率を取得

UWSC
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)
結果
UWSC
12.50%
25%
50%
100%
200%
300%
400%
500%
600%
700%
800%
使用関数

関連記事

GETITEM関数 (スクリプト関数)
キャプション文字やリスト等をすべて取得します。
ACW関数 (スクリプト関数)
ウィンドウの状態を変更、またはアクティブにします。
CTRLWIN関数 (スクリプト関数)
ウィンドウの状態を制御します。
GETCTLHND関数 (スクリプト関数)
ボタン等、オブジェクトのハンドルを取得します。
GETSLIDER関数 (スクリプト関数)
スライダー(トラックバー、スクロールバー)の値を取得します。
HNDTOID関数 (スクリプト関数)
ハンドル値をIDに変換します。
IDTOHND関数 (スクリプト関数)
IDをハンドル値に変換します。
CHKBTN関数 (スクリプト関数)
ボタン類(ボタン、チェックボックス、ラジオボタン)の状態を返します。
CLKITEM関数 (スクリプト関数)
アイテムをクリックします。
GETID関数 (スクリプト関数)
指定したウィンドウのIDを取得します。第一引数に取得したいウィンドウのタイトル(一部でも可)を指定します。