API32 コントロールのEditテキストの文字列の取得・出力について
外部アプリケーションの子ウィンドウ(Edit)のテキストが取得できません。
ご指導お願いいたします。
■やりたいこと
外部アプリケーションのEditの文字列を取得(変数に代入まで)
取得したい文字列数は、半角8桁程度です。
開発環境 BVA
●取得済みの情報
外部アプリケーションの親ウィンドウのハンドルを取得済み。
特定の子ウィンドウのコントロールIDを取得済み。
lpStringの使い方が全く分かっていません。
nMaxCountも分かりません。
hDlgには親ウィンドウのハンドルが入っています。
<関数の宣言>
Declare Function GetDlgItemText Lib "user32" Alias "GetDlgItemTextA" _
(ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long
Sub GetTextTest()
nIDDlgItem = "000514F6" 'EditのコントロールID
lpString = Space(10) '分かっていないのですが調べてみてなんとなく
GetText1 = GetDlgItemText(hDlg, nIDDlgItem, lpString, 256)
End Sub
これで、GetText1にEditのテキストが取得できると思っているのですが、
根本的に間違っている気もします。
実行以前に、型が一致しませんと出てしまいます。
型を修正しても、GetText1にはエラーの0が出力されるのではと思っております。
また、別件なのですが、
親ウィンドウの中に子ウィンドウ1があって、
子ウィンドウ1の中に子ウィンドウ2(Edit)があった場合
親ウィンドウのハンドルと、子ウィンドウ2のコントロールIDが
分かっていれば、Editの文字列は取得できるのでしょうか?
お礼
回答ありがとうございます。 早速試してみます。