InternetExplorerのURLを取得したい

解決


uokiti  2007-05-27 12:43:49  No: 65213

.NETです
InternetExplorerで表示中のURLを取得したいので、
アドレス欄のエディット内から取得しようとしています。

しかし、EnumChildWindowsで子ウィンドウから探しても見つからないのです
ハンドルからGetWindowTextによって取得しようとしてるのが悪いのでしょうか?

        EnumWindows(w_Delegate, 0)
        EnumChildWindows(windowhandle, c_Delegate, Nothing)
    'トップレベルウィンドウのコールバック
    Public Function EnumWindowsProc(ByVal hwnd As Integer, ByVal lParam As Integer) As Integer
        Dim str As String
        str = Space(8)
        GetClassName(hwnd, str, Len(str))
        str = Mid(str, 1, InStr(1, str, vbNullChar) - 1)
        If str = "IEFrame" Then
            windowhandle = hwnd
            Return False
        Else
            Return True
        End If
    End Function
    '子ウィンドウのコールバック
    Public Function EnumChildProc(ByVal hwnd As Integer, ByVal lParam As Integer) As Integer
        Dim str As String
        Dim url As String
        str = Space(64)
        GetWindowText(hwnd, str, Len(str))
        url = str
        str = Mid(str, 1, 4)
        If str = "http" Then
            geturl = url
            Return False
        Else
            Return True
        End If
    End Function

UWSC(自動化ソフト兼微プログラミング言語)で、EDITを全取得してみたらできました


uokiti  2007-06-02 19:03:02  No: 65214

誰か答えてくれませんか?


Blue  2007-06-02 21:20:00  No: 65215

確認ですけど、Visual C++の質問でしょうか?
提示されているコードはVBのように見えるのですけど。
VBなら板違いです。
→VB用の掲示板があるのでここを閉じて移動してください。

VCなら
http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200701/07010017.txt
といった具合に取得できます。


YuO  2007-06-03 23:07:11  No: 65216

単純にIEのトップのウィンドウハンドルから探したところで,
エディットコントロールが直下にないのだから見つかるわけがありません。

COMコンポーネントとして扱わないのであれば,
再帰させて子孫を調べてみつける必要があります。
# つーか,あれはコンボボックス……。

とりあえず,SPY++で構造を探ってみることをお勧めします。


渋木宏明(ひどり)  URL  2007-06-03 23:50:21  No: 65217

># つーか,あれはコンボボックス……。

この辺は、所詮他人の作ったアプリなので、不変である事は期待できません。

Vista の (IE ではなく) Explorer のアドレスバーはツールバー(と他の何かのコンビネーション?)になっているはずです。


uokiti  2007-06-04 06:33:26  No: 65218

Blueさん>
激しく板違いでした…申し訳ありません
一応助言を受け取ってしまったので消さずに解決済みにします

Yuoさん>
SPY++ですね、紹介ありがとうございます
コントロールやCOM等の構造についてもう少し詳しく調べ覚えする必要がありそうです

渋木宏明(ひどり)さん>
不変ではない点について、心に留めておきます

皆さん失礼しました
ありがとうございます


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加