• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:API32 コントロールのEditテキストの文字列の取得・出力について)

API32 コントロールのEditテキストの取得方法と出力について

このQ&Aのポイント
  • 外部アプリケーションの子ウィンドウ(Edit)のテキストを取得する方法について教えてください。
  • lpStringとnMaxCountの使い方がわかりません。型の修正にも苦戦しています。
  • 親ウィンドウの中の特定の子ウィンドウ(Edit)の文字列を取得する場合、親ウィンドウのハンドルと子ウィンドウのコントロールIDを知っていれば可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.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が目的の文字列。

emson100
質問者

お礼

一発で実行できてしまいました! O(≧▽≦)O♪ 基本が理解できてないので試行錯誤で悩み続けておりました。 本当にありがとうございます。 基本も全く分かってない者に、非常に分かりやすく 教えていただき本当に助かりました。 こんなにも分かりやすい適切な返答初めてです。 即使えるサンプルも記載いただき感謝感激です。 API関数の使い方自体が漠然と分からず、理解が困難だったのですが、 今回のご返答で理解できるようになりました。

関連するQ&A

専門家に質問してみよう