| | タイトル | : 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が取得できず先に進めません。
 今だ検索中ですが正しい方法を教えていただけるとありがたいです。
 宜しくお願いします
 
 |