- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:API32 コントロールのEditテキストの文字列の取得・出力について)
API32 コントロールのEditテキストの取得方法と出力について
このQ&Aのポイント
- 外部アプリケーションの子ウィンドウ(Edit)のテキストを取得する方法について教えてください。
- lpStringとnMaxCountの使い方がわかりません。型の修正にも苦戦しています。
- 親ウィンドウの中の特定の子ウィンドウ(Edit)の文字列を取得する場合、親ウィンドウのハンドルと子ウィンドウのコントロールIDを知っていれば可能でしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
まずはGoogleでGetDlgItemTextを検索しましょう。 http://www.activebasic.com/help_center/Pages/API/Window/DialogBox/GetDlgItemText.htm えー違ってる箇所を指摘します。 nIDDlgItemの型はLongなのに、なんで nIDDlgItem = "000514F6" 'EditのコントロールID と文字列を入れているのですか? 16進数で入れるには、VBであれば&H000514F6です。 あとGetDlgItemText関数が返す値は取得した文字数です。 なので当然、GetText1に入れるのは間違ってます。lpStringに取得した文字列が入るのですよ。 とりあえずサンプル Dim bufStr As String Dim retStr As String Dim nIDDlgItem As Long ' コントロールID nIDDlgItem = &H000514F6 ' バッファの用意 bufStr = String(255, vbNullChar) ' エディットボックスの文字列を取得する If GetDlgItemText(hWnd, nIDDlgItem, bufStr, Len(bufStr)) > 0 Then retStr = Left$(bufStr, InStr(bufStr, vbNullChar) - 1) End If ' retStrが目的の文字列。
お礼
一発で実行できてしまいました! O(≧▽≦)O♪ 基本が理解できてないので試行錯誤で悩み続けておりました。 本当にありがとうございます。 基本も全く分かってない者に、非常に分かりやすく 教えていただき本当に助かりました。 こんなにも分かりやすい適切な返答初めてです。 即使えるサンプルも記載いただき感謝感激です。 API関数の使い方自体が漠然と分からず、理解が困難だったのですが、 今回のご返答で理解できるようになりました。