2012-08-29 41 views
0

我正在爲IE編寫一個BHO。我想從地址欄獲取用戶的輸入。輸入可以是網址或搜索關鍵詞。 因爲還有其他BHO會將用戶的輸入更改爲符合條件的網址。我不需要更改,並希望從用戶那裏獲得原始輸入。 在BHO中,哪一個調度事件是用戶獲得原始輸入的合適時間?我怎樣才能得到它? 您的回答將不勝感激。如何以及何時從BHO中的地址欄獲取用戶輸入

+0

沒有辦法確保您的BHO是第一個獲得該信息的人。抱歉。 –

回答

0
+0

是的,我有紅色的。但是我在BeforeNavigate2事件中得到的輸入可能不是用戶的原始輸入。輸入可能由其他BHO編輯。例如如果用戶的輸入是「寶貝」,我們只想獲得「寶貝」,而不是編輯的輸入作爲url「www.baby.com」。 – Nicholas

1

在Windows 7上,我看到一個帶有「地址帶根」類的窗口(使用Spy ++)。這大概是瀏覽器中的地址欄。它有一個子窗口,它是一個編輯控件。您可以繼承或鉤住此編輯控件,以便獲取EN_CHANGEEN_UPDATE通知。然後你可以查詢它的當前文本。這是一項非常先進的技術,但通常情況下,在IE中執行簡單的事情需要複雜的代碼。

哦,我應該提到,這大概不會在IE保護模式下工作。你可以實現一個單獨的COM對象,並讓BHO實例化它,並讓它執行骯髒的工作。通常IE會提示用戶訪問提升模式進程的權限,但是您可以使用註冊表來訪問override this behaviour

就像我說的,這是先進的。

相關問題