讓應用程式從IE中獲取鍵入的網址 (轉)

worldblog發表於2007-12-13
讓應用程式從IE中獲取鍵入的網址 (轉)[@more@]

  前些時候,朋友想做一個小共享,軟體的主要作用是阻止進入某些網站,他的設想是從IE的位址列中獲取鍵入的網址,如果這個網址的話,則不可以進入,程式碼如下:

 HWND hwnd=::FindWindow(_T("IEFrame"),NULL);
  if(hwnd)
 {
   HWND hwnd2=::FindWindowEx(hwnd,NULL,_T("Edit"),NULL);


 char sz[255];
 ::SendMessage(hwnd2,WM_GETTEXT,255,(LPARAM)sz);
 AfxMessageBox(sz);
 }

結果發現不能得到正確的結果,從SPY上看,類名也全部是正確的,為什麼不能得到正確的結果呢?看了他的程式碼後,我進行了如下改動,就可以得到正確的結果了:

HWND hwnd=::FindWindow(_T("IEFrame"),NULL);
 if(hwnd)
 {
 HWND hwnd2=::FindWindowEx(hwnd,NULL,_T("WorkerW"),NULL);
 HWND hwnd3=::FindWindowEx(hwnd2,NULL,_T("ReBarWindow32"),NULL);
 HWND hwnd4=::FindWindowEx(hwnd3,NULL,_T("ComboBoxEx32"),NULL);
 HWND hwnd5=::FindWindowEx(hwnd4,NULL,_T("ComboBox"),NULL);
 HWND hwnd6=::FindWindowEx(hwnd5,NULL,_T("Edit"),NULL);

 char sz[255];
 ::SendMessage(hwnd6,WM_GETTEXT,255,(LPARAM)sz);
 AfxMessageBox(sz);
 }
}

  以上的程式碼不用我解釋了吧,這個問題不是什麼大問題,難度也不大,但是可能會讓初學者不明白為什麼得不到某一的HANDLE,其實對VC來說,沒有什麼辦不到的事情,只是需要你仔細的分析一下而已。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992944/,如需轉載,請註明出處,否則將追究法律責任。

相關文章