- ベストアンサー
VB6.0で外部アプリの値を取得したい
VB6.0で外部アプリケーションのエディトエディトボックスに書かれている値を取得したいのですが、どのように取得したらわからず困っております。 外部アプリケーションのハンドルIDも、その中にあるエディトボックスのハンドルIDも取得できたのですがその値を取得する方法を調べておりますが、よくわかりません。判る方いらっしゃいましたら教えて下さい。
- Simanohito
- お礼率68% (43/63)
- Visual Basic
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。簡略化版を回答しておきます。 Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" _ (ByVal hwndParent As Long, ByVal hwndChildAfter As Long, _ ByVal lpszClass As String, ByVal lpszWindow As String) As Long Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal MSG As Long, ByVal wParam As Long, ByVal lParam As Any) As Long Const WM_GETTEXT As Long = &HD Sub test() Dim hWnd As Long, hWndEdit As Long Dim lngRet As Long Dim myText As String * 255 hWnd = FindWindowEx(0, 0, "Notepad", vbNullString) If hWnd = 0 Then MsgBox "メモ帳が見つかりません。" Exit Sub End If hWndEdit = FindWindowEx(hWnd, 0, "Edit", "") lngRet = SendMessage(hWndEdit, WM_GETTEXT, Len(myText), ByVal myText) Debug.Print myText End Sub
その他の回答 (1)
- mitarashi
- ベストアンサー率59% (574/965)
http://okwave.jp/qa/q5392790.htmlのNo.5に、他アプリのエディットコントロールをマウスでクリックして、ハンドルを取得し、テキストを貼り付けるコードを回答しておりますが、 lngRet = SendMessage(hWnd, WM_SETTEXT, 0, ByVal myText) のところを、 lngRet = SendMessage(hWnd, WM_GETTEXT, Len(myText), ByVal myText) に変更すると、メモ帳のテキストを取得できました。 (注) Dim myText As String * 255等と、事前に領域確保が必要です。 参考コードには、余分な情報が多いと思いますが、ご参考まで。
お礼
ご回答ありがとうございます。 ご連絡が大変遅くなりまして申し訳ございません。 上記方法で解決することが出来ました。
関連するQ&A
- html内の値を取得
下記開発環境で開発を行っています。 VS2005 vb.net あるString型の変数に値が入っています。 その値は下記のようなhtmlです。 <html> ←ここから <head></head> <body> <div id='test1'> OK </div> </body></html> ←ここまで 実装したいことは <div id='test1'> で囲まれた”OK”という値を取得することです。 文字列をHtmlDocumentに格納するとGetAttributeメソッドで取得できるのらしいですが、 方法がわかりません。←すみません、表現がただしくないかもしれません。 どなたかご存知の方ご教授お願い致します。
- 締切済み
- Visual Basic
- VB2005 ComboBoxの値の取得について
VB入門者なのですがよろしくお願いします。 VB2005のComboBoxで、 ComboBox1.Items.Add("個人") ComboBox1.Items.Add("クラス") ComboBox1.Items.Add("全体") これらの項目にそれぞれ値を取得させたいのですが、その方法がわかりません。 もしよろしければ、ご支援お願いします。
- ベストアンサー
- Visual Basic
- vbsで取得した値をvb.netで受け取る。
vbsでデバイスインスタンスパスを取得し、そのデバイスインスタンスパスを vb.netで使用してデバイス制御アプリケーションを作成しようと考えています。 ですがvbsで取得したデバイスインスタンスパスをvb.netで受け取るための手段が調べても わかりませんでした。 ご存じの方がいらしたら教えていただきたいと思います。
- 締切済み
- Visual Basic
- VBからEXCELのセルの値を取得する方法
VBからEXCELファイルのあるセルの値を取得すると、本来の書式設定とは 違った形式で取得されてしまいます。 VBから値を取得する方法を教えて下さい。 *EXCELファイルのセルの設定 セルの書式設定-ユ-ザ-定義-[h]:mm (時刻ではなく、時間として設定しています) これをVBから普通に取得すると「1.7523548785」などといった 数値になってしまいます。
- ベストアンサー
- Visual Basic
- VB2008 iniファイルの指定セクション内の値のみを取得
VB2008 iniファイルの指定セクション内の値のみを取得 VB2008でiniファイルの読込みを行いたいと思っています。 指定セクション内の値のみを取得したいのですが、自分の知る限りではキー名も一緒についてきて しまいます。 簡単に値のみを取得する方法を助言いただきたいと思います。 自分が検討した一番近かった方法は、GetPrivateProfileSection関数を使用し、キー名と値を取得。 ↑ただし、キー名はいらない。 関数で出来ればいいのですが、出来なければ、プログラミングで値のみを抜き取る方法でもいいので なるべく簡単な方法を宜しくお願いします。
- ベストアンサー
- Visual Basic
- VBでRegisterWindowMessage関数を利用したメッセージの取得 2
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1042889 の質問者の方と同じことで悩んでおります。 ---回答引用--- (1)VB側のウインドウハンドル(Me.hWnd)をAPIに渡す。 (2)RegisterWindowMessage("キーワード")でメッセージIDを取得する。 (3)VB側のウインドウをサブクラス化して、(2)のメッセージIDをフックする。 -------------- ということなのですが、 (1)は解決できたと思います。 (2)で、メッセージIDを取得する方法で悩んでいます。 "キーワード"は任意の文字列でいいのでしょうか? APIを使用するのが初めてで、いろいろ調べたのですが、なかなか理解できないで困っております。 APIについておすすめのURLでもよいので教えていただけますでしょうか?
- ベストアンサー
- Visual Basic
- FinderSystem等のツールで取得できないハンドルを取得するには?
他のアプリケーションのボタンで操作したいと思い FinderSystemやNuke++等のツールを使いウィンドウハンドルを調べ SendMessage関数を使ってコマンドボタンのクリックをする所までは できるのですが、ツール等でウィンドウハンドルを取得できないラベル トグルボタンが存在し、画面上では明らかに存在しているのですが そのボタンには反応せず、大きな枠組みでウィンドウハンドルを 取得してしまいます。FindWindow、FindWindowEx、GetWindow EnumChildWindowで子ウィンドウのハンドルまで調べたのですが 値が0になってしまいます。他にもボタンだけではなく タブコントロールも操作したいと思っているのですが 同様に子ウィンドウハンドルの値は0になってしまいます そもそもウィンドウハンドルを全て取得することは不可能なのでしょうか? いろいろな他のアプリケーションのコマンドボタンをFinderSystemで調べて 取得できる場合とできない場合があり、この差は何なのか 疑問に思っています。ご存知のお方がいれば お手数ですが教えていただけないでしょうか? 開発環境は、WindowsXP、VB6.0です。 宜しくお願いいたします。
- 締切済み
- Visual Basic
- WebRequestでJavascriptの値取得
VB .Net(2008)のWebRequestでHPのページの値を取得するものを作成しているのですが、Javascriptが表示する部分の値が取得出来ません。 Javascriptが動的に挿入する値を取得する方法はあるでしょうか? よろしくお願いします。
- ベストアンサー
- Visual Basic
- VB.netでUSBメモリの固有ID(シリアル)を取得する方法
VB.netでUSBメモリの固有ID(シリアル)を取得する方法 お世話になります。 VBでアプリケーションを作成しているのですが、その認証にUSBメモリの固有IDを使用したいと考えています。 しかし、固有ID(シリアル)を取得する方法がわからずに悩んでいます。 USBメモリのボリュームシリアルは取得できたのですが・・・。 (ボリュームシリアルだとフォーマットすれば変わってしまう?) よろしくお願いします。
- 締切済み
- Visual Basic
- vb6です。 現在開いているフォームの次のウィンドウをアクティブにした
vb6です。 現在開いているフォームの次のウィンドウをアクティブにしたいのです。 ただ、次のウィンドウはエクセルなど他のアプリケーションになります。 ハンドルとかはよくわからないのでハンドル以外の方法があればそちらを使いたいのですが、もしハンドルを取得するしかなければサンプルソースも教えてほしいです。 おねがいします。
- ベストアンサー
- Visual Basic
お礼
ご回答ありがとうございます。 ご連絡が大変遅くなりまして申し訳ございません。 上記方法で解決することが出来ました。