Borland C++ で作成されたと思われるアプリがあります。
その中のテキストボックスの様な部分を Spy++で確認すると
Class Name が "TPlusMemoU" となっています。
この部分のテキスト(Caption)はSpy++ではブランクとなっています。
VB6から、この部分のテキストを取得したいと考えていますが、
Web上では参考になるHPなどが見つかりませんでした。
TPlusMemoU 自体は下記の物?かなと考えているのですが・・・
→ VBのリッチテキストの様にハイライト機能なども有ります。
http://www.vclcomponents.com/Delphi/Common_Controls/TPlusMemoU-info.html
何か情報・アドバイスを頂ければ幸いです。
よろしくお願いします。
TPlusMemoU をインストールしていないので、具体的な事は書けませんが:
> その中のテキストボックスの様な部分を Spy++で確認すると
> Class Name が "TPlusMemoU" となっています。
inspect を用いて、その部分の文字列を取得することはできますか?
http://www.microsoft.com/downloads/details.aspx?familyid=3755582A-A707-460A-BF21-1373316E13F0&displaylang=en
もしそれが可能なら、VB6 から IAccessible インターフェイス経由で
取得できるかも知れません。
魔界の仮面弁士さん、面白いツールご紹介有り難うございました。
早速調べましたが、Spy++と同じく取得できませんでした。
取得できる場合は下記のValueに入ってくると思いますが、・・・
How found: Focus [o:0xFFFFFFFC,c:0x0]
hwnd=0x00130BA6 32bit class="TPlusMemoU" style=0x54010000 ex=0x200
Info: IAcc = 0x0017C490 VarChild:[VT_I4=0x0]
Interfaces: IEnumVARIANT IOleWindow IAccIdentity
Impl: Local oleacc proxy
Annotation ID: 01000080A60B1300FCFFFFFF00000000
Name: none [false]
Value: none [false]
Role: クライアント
State: フォーカスされています。,フォーカスできます。
単なるテキストボックス(class="TEdit")なら下記のようになります。
How found: Focus [o:0xFFFFFFFC,c:0x0]
hwnd=0x00370C86 32bit class="TEdit" style=0x540100C0 ex=0x200
Info: IAcc = 0x0015EDE0 VarChild:[VT_I4=0x0]
Interfaces: IEnumVARIANT IOleWindow IAccIdentity
Impl: Local oleacc proxy
Annotation ID: 01000080860C3700FCFFFFFF00000000
Name: none [false]
Value: "備考1"
Role: 編集可能なテキスト
State: フォーカスされています。,フォーカスできます。
★ Role: クライアント が気になりますが・・・
失礼、Inspect ではなく、AccExplorer の方でした。
メモ帳/ワードパッド/Internet Explorer 等の内容であれば、
先の Microsoft Active Accessibility 経由で取得できるのですが、
ツールで拾えないとなれば、この方法では無理そうです。
http://msdn.microsoft.com/ja-jp/library/cc421916.aspx
# もし、文字列を「描画」しているアプリだとしたらお手上げかも。
OS 標準のテキストボックスが相手なら、WM_GETTEXT や EM_GETTEXT(EX) で
得られる可能性もあるのでしょうけれども… Spy++ でキャプションが
空になっているということは、それでは通用しそうにないですね。
何か専用のメッセージがあるのかも知れませんが、ソフト自体を
見たことが無いので、これ以上は分からないです。
魔界の仮面弁士さん
> 失礼、Inspect ではなく、AccExplorer の方でした。
これも試しましたが、やはり取得できませんでした。
色々アドバイス有り難うございました。
>OS 標準のテキストボックスが相手なら、WM_GETTEXT や EM_GETTEXT(EX) で
>得られる可能性もあるのでしょうけれども… Spy++ でキャプションが
>空になっているということは、それでは通用しそうにないですね。
Spy++ 以外にも、WinSpy,Winspector Spy でも同じでした。
もう少し、代替え方法も含め調べてみます。