C# 打开(任何)窗口关闭事件保存窗口标题



在C#中,我目前想添加一个事件,该事件将在任何窗口关闭时触发(不仅是WPF或窗体窗口(。到目前为止,我得到了这一步,而且效果很好。SubscribeWindowClose事件将在另一个程序启动时添加。

我看了一下Microsoft关于 Automation.AddAutomationEventHandler 的文档。
在文档中是关于缓存自动化元素的描述,我不太明白。
我只想将关闭的窗口标题与我在列表(列表(中获得的窗口标题进行比较。
任何人都可以帮助我解决这个问题或向我展示解决我的"问题"的更好方法吗?
提前感谢!



法典:

private void SubscribeWindowClose(AutomationElement window) {
Automation.AddAutomationEventHandler(WindowPattern.WindowClosedEvent, 
window, TreeScope.Element, OnWindowClose);
}
private void OnWindowClose(object src, AutomationEventArgs e) {
try {
var element = src as AutomationElement;
Debug.WriteLine(element);
if (e.EventId == WindowPattern.WindowClosedEvent) {
// if window title is in List, run method
return;
}
} catch (ElementNotAvailableException) {
return;
}
}

@NetMage的评论是朝着正确方向迈出的一步。
最终得到了这个扩展的修改版本。
条件被修改为ControlType.TitleBar,像魅力一样工作!