我正在做一个项目,我需要获取正在关闭的窗口的名称。我为此使用 C# 自动化事件。
我已经粘贴在我正在使用的代码下面:
Automation.AddAutomationEventHandler(WindowPattern.WindowClosedEvent,
AutomationElement.RootElement, TreeScope.Subtree, (sender, eve) =>
{
AutomationElement winElemnt = sender as AutomationElement;
if (winElemnt != null)
{
Console.WriteLine("Window closed : " + winElemnt.Current.Name);
}
});
关闭任何窗口时都会触发上述代码,但执行时出现以下错误:
- 变量sender的值为null。
- 无法获取自动化元素的Current.Name(我大部分时间都收到此错误)
在调试时,我发现第二个错误是由于在完成事件处理程序执行之前关闭窗口所致。
请让我知道如何修复这些错误并获取触发关闭的窗口的名称。
提前致谢