我正在开展一个项目,我希望在Internet Explorer获得焦点或浏览选项卡时通知我的程序。为了更清楚当IE的实例获得焦点或用户选择另一个选项卡时,我希望通知我的程序。
为此,我使用AutomationFocusChangedEventHandler
这样:
AutomationFocusChangedEventHandler focusHandler;
private void StartListening()
{
focusHandler = new AutomationFocusChangedEventHandler(OnFocusChanged);
Automation.AddAutomationFocusChangedEventHandler(focusHandler);
}
private void OnFocusChanged(object src, AutomationFocusChangedEventArgs e)
{
AutomationElement ae = AutomationElement.FocusedElement;
if (ae.Current.ClassName == "Internet Explorer_Server")
{
//do something here
}
}
当我点击IE的不同实例时,它工作正常,但在与标签交互时,使用某些这些标签,onFocusChanged
不会触发。使用一些选项卡,它工作正常,但对于其他选项卡它没有(它没有检测到某些选项卡的选项卡更改)。为什么?我错过了什么吗?