タイトル | : IEのアドレスバーにSendMessage |
記事No | : 15532 |
投稿日 | : 2012/07/10(Tue) 17:31 |
投稿者 | : Boze |
環境:VB6.08 WindowsXP SP3
いつも大変お世話になっております。 標題についてうまくいかないのでご教示お願いいたします。
既に開いているIE(Process取得済み)に対してURLを送信しようとしています。 SendKeysではうまく動作しないためより確実であろうSendMessageの使用を検討しています。
@ VBよりShellでIEを開く。2重軌道禁止のためにProcessを取得しておく A 別のURLを開くときにProcessが生きていれば既存のIEにURL送信 Processが死んでいればShellにて起動
今しようとしていることは @ ProcessよりIEのウィンドウハンドルを取得 A FindoWindowExよりアドレスバーのハンドルを取得 B SendMessageによりアドレスバーにSetFocus C SendMessageによりアドレスバーにURL送信
しかし現在Aでつまずいて困っています。
いくつかのサイトによると、 IEの親ハンドル :hWnd そのChildハンドル:hWndC1 WorkerW そのChildハンドル:hWndC2 ReBarWindow32 そのChildハンドル:hWndC3 EDIT ←これがAddressBar となっており
hWndC1=FindWindowEx(hWnd,0,"WorkerW",vbnullstring) hWndC2=FindWindowEx(hWnd,0,"ReBarWindow32",vbnullstring) hWndC3=FindWindowEx(hWnd,0,"EDIT",vbnullstring)
SendMessage(hWndC3,WM_SETFOCUS,0,0) SendMessage(hWndC3,WM_SETTEXT,0,URL) PostMessage(hWndC3,WM_KEYDOWN,VK_RETURN,0)
でできるはずなのですが、hWndC1が取得できず先に進めません。 今だ検索中ですが正しい方法を教えていただけるとありがたいです。 宜しくお願いします
|