HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0604
potti市販アプリの設定ウインドウ上の文字(数値)取得1未解決


potti

リンク

2009/6/4(Thu) 02:31:48|NO.25513

市販アプリの設定ウインドウを出して設定中に、
そのウインドウ上の文字(数値)及び数値入力欄の文字(数値)取得は出来ますでしょうか。



この記事に返信する


hspail

リンク

2009/6/4(Thu) 05:42:51|NO.25514

ほとんどの場合できます。
WM_GETTEXT を使うことの出来ないコントロールである場合はできません。

Spy++ を使ってウィンドウの階層構造を調べ、
それにそって FindWindow やらなんやらでウィンドウハンドルを取得していきます。


#uselib "user32" #cfunc FindWindow "FindWindowA" str, str #cfunc FindWindowEx "FindWindowExA" int, int, str, str #define WM_GETTEXT 0x000D print "HSPスクリプトエディタの設定画面をひらいてからボタンを押して下さい" button "", *go stop *go hOptWin = FindWindow("#32770", "HSPスクリプトエディタ 設定") if (hOptWin == 0) : dialog "設定ウィンドウが見つかりません" : stop print "設定ウィンドウのウィンドウハンドル = "+hOptWin hWin = 0 repeat 5 hWin = FindWindowEx(hOptWin, hWin, "#32770", "") if (hWin == 0) : stop loop print "設定ウィンドウの子ウィンドウである「表示」設定ウィンドウのハンドル = "+hWin hEdit = FindWindowEx(hWin, 0, "Edit", "") print "エディットコントロールのハンドル = "+hEdit sdim text, 1024 sendmsg hEdit, WM_GETTEXT, 1024, varptr(text) : print "TABの字数 = "+text hEdit = FindWindowEx(hWin, hEdit, "Edit", "") sendmsg hEdit, WM_GETTEXT, 1024, varptr(text) : print "ルーラの高さ = "+text hEdit = FindWindowEx(hWin, hEdit, "Edit", "") sendmsg hEdit, WM_GETTEXT, 1024, varptr(text) : print "行番号表示の幅 = "+text hEdit = FindWindowEx(hWin, hEdit, "Edit", "") sendmsg hEdit, WM_GETTEXT, 1024, varptr(text) : print "行間の広さ = "+text stop



ONION software Copyright 1997-2018(c) All rights reserved.