Qtというツールで作られたアプリケーションのようなのですが
そのアプリ内のEditコントロールらしきウインドウに入力された文字列を
取得したいのですが・・・なかなかうまく取得できません。
ハンドルは正常に取得できます。
クラス名はいろいろなコントロールを試していますが、ほとんどが"QWidget"になります。
問題の文字列はコントロールごとに違いますが、固定の文字列が返って
きます。
どうもウィンドウタイトルが返ってくるようです。
環境は Win7(64bit) + Delphi7です
文字列の取得はSendMessageでWM_GETTEXTを送っています。
正常に取得する方法は無いでしょうか?
宜しくお願い致します。
>ハンドルは正常に取得できます。
対象コントロールのウィンドウハンドルでないのでは?
GetWindowRectなどで確認してみてください。
Novさん、こんにちは
ありがとうございます
>対象コントロールのウィンドウハンドルでないのでは?
>GetWindowRectなどで確認してみてください。
何種類かのハンドル取得ソフトで確認していますので間違いはないはずです
Qtって標準コントロールをラップしているわけではなくて、一から独自実装じゃなかったでしたっけ。
GETTEXTで取れないとしたら、内部で文字列を独自管理しているでしょうから標準的な方法では取れないと思います。
ざっと調べたところでは、やはり一般的な方法は存在しないようですね。
唯一の可能性としては、MSAA (Microsoft Accessibility Support) の機能を相手のアプリケーションが有効にしていればUI Automationの機能を使って取れるかも、ということですが……
http://msdn.microsoft.com/en-us/library/ee684009.aspx
torさん、こんにちは
ありがとうございます
>唯一の可能性としては、MSAA (Microsoft Accessibility Support) の機能を相手のアプリケーションが有効にしていればUI Automationの機能を使って取れるかも、ということですが……
調べてみました・・・
該当アプリの全てのウインドウの AutomationId が取得できませんでした
これは UI Automation が使えないってことなのかな?
期待しているアプリなのでも少し頑張ってみます
ツイート | ![]() |