当前位置:编程学习 > C#/ASP.NET >>

如何监控一个已经打开的窗口是否已经关闭或隐藏

目前是这么做的,专门开了一个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#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,