我正在为IE写一个BHO。我想从地址栏获取用户的输入。输入可以是网址或搜索关键字。 因为其他BHO会将用户的输入更改为符合条件的网址。我不需要更改,并希望从用户获取原始输入。 哪个派遣事件将是从BHO用户获取原始输入的合适时间?我怎么才能得到它? 您的回答将受到高度赞赏。
答案 0 :(得分:1)
在Windows 7上,我看到一个带有“Address Band Root”类的窗口(使用Spy ++)。这可能是浏览器中的地址栏。它有一个子窗口,它是一个编辑控件。您可以子类化或挂钩此编辑控件,以便获得EN_CHANGE
或EN_UPDATE
通知。然后,您可以查询当前文本。这是一种非常先进的技术,但通常情况下,在IE中执行简单的操作需要复杂的代码。
哦,我应该提一下,这可能不适用于IE保护模式。你可以实现一个单独的COM对象,让BHO实例化它并让它做脏工作。通常,IE会提示用户访问提升模式进程的权限,但您可以使用注册表override this behaviour。
就像我说的那样,这是先进的。
答案 1 :(得分:0)
您是否看过BeforeNavigate2事件? http://msdn.microsoft.com/en-us/library/aa768326(v=vs.85).aspx