如何监控一个已经打开的窗口是否已经关闭或隐藏
目前是这么做的,专门开了一个Thread,每隔1s去判断对应的窗口句柄的窗口状态是否隐藏。以下是Thread里面的代码。ProcessHelper.IsWindowVisible调用的是Windows的API(IsWindowVisible)
while (ProcessHelper.IsWindowVisible(formItem.HWND))
{
Thread.Sleep(1000);
}
在处理Excel窗口时遇到了问题,Excel关闭时,会有不小的几率提示“Excel退出错误”。如果把以上代码中Thread.Sleep改成0.1s就基本上会100%报错了。
估计原因可能是正好在Excel退出时,调用了IsWindowVisible,导致的Excel报错。
不知道有没有好的策略来防止这个错误出现。
打开PPT窗口的话倒是不出来这个提示,但是PPT直接会出来提交错误给微软的窗口(Error Report)。 --------------------编程问答--------------------
能换成判断进程吗
此消息通过 【CSDN论坛 Winform测试版】 回复!有关此工具 --------------------编程问答-------------------- 有问题,像Word这种,运行了2个窗口,结果出来了就一个进程,如果判断进程的话,就无法区分这两个窗口哪个关闭,哪个没关闭了。
补充:.NET技术 , C#