我爲IE編寫了一個插件:當IE打開時,我的插件會自動顯示一個對話框與用戶交互。但是當IE打開時,我無法確定哪個函數會被調用(我會實現)。你可以幫我嗎?如何確定何時在我的BHO中打開IE(Internet Explorer)瀏覽器?
非常感謝!
我寫過這樣的插件:http://www.codeproject.com/Articles/37044/Writing-a-BHO-in-Plain-C。但只有當用戶點擊IE上的設備時纔會運行。我想要這個插件在IE打開時運行。
感謝
我爲IE編寫了一個插件:當IE打開時,我的插件會自動顯示一個對話框與用戶交互。但是當IE打開時,我無法確定哪個函數會被調用(我會實現)。你可以幫我嗎?如何確定何時在我的BHO中打開IE(Internet Explorer)瀏覽器?
非常感謝!
我寫過這樣的插件:http://www.codeproject.com/Articles/37044/Writing-a-BHO-in-Plain-C。但只有當用戶點擊IE上的設備時纔會運行。我想要這個插件在IE打開時運行。
感謝
IE會打電話給你IObjectWithSite :: SetSite()實現。這是您與瀏覽器的首次互動。
記下:此時您可能會或可能不會顯示對話框。 IE的啓動過程非常複雜且高度異步。如果您嘗試過早顯示對話框,您可能會掛起。如果是這種情況,您應該發送一條異步消息給自己,稍後再顯示對話框。或者,您可以下載DWebBrowserEvents2 :: DocumentComplete並在第一次加載完成時顯示對話框。
我找到了我的解決方案。本教程拯救了我的生命:http://www.codeproject.com/Articles/37044/Writing-a-BHO-in-Plain-C。
只寫一個正常的BHO。然後安裝它。 安裝BHO只需要一個進程調用我們的BHO的DllRegisterServer函數。這通過regsvr32.exe實用程序變得簡單。只需運行命令regsvr32.exe,並註冊BHO。要卸載BHO,一個進程需要調用我們的BHO的DllUnregisterServer函數。這也可以通過運行命令regsvr32.exe/u通過regsvr32.exe來完成。
謝謝。我已經實施了SetSite。但是我的BHO只有在用戶點擊我IE瀏覽器的BHO項目時纔會運行。我希望我的BHO在IE運行時運行(也許很晚),它不需要用戶點擊IE的設備。 – aviit
如果未創建,我的BHO不能淹沒任何事件。我看到,我的BHO是在用戶第一次點擊其裝備時創建的(創建BHO並調用SetSite)並在其他時間調用Exc。 – aviit
您是否在註冊表中正確註冊了您的BHO?它應該在加載過程中自動創建。如果你沒有被創建,直到按鈕被點擊,這意味着你只註冊爲一個工具欄按鈕的擴展名,這與BHO不同。如果你的軟件包有一個BHO和一個工具欄按鈕擴展,你應該有兩個不同的IObjectWithSite實現。 –