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("「" + 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

取得例

メモ帳
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
結果
プレーンテキスト
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)
結果
プレーンテキスト
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関数 (スクリプト関数)
マウス座標を相対座標にする、 またはマウスとキー情報を直接ウィンドウへ送ります。