0

我有一个实例化本地 OLE 服务器的应用程序。

在某些情况下,此服务器会打开一个对话框以响应对其公开方法之一的调用。

无论如何有可能抑制这个框,或者以某种方式“自动确认”它?

问题是应用程序应按计划任务运行,并在弹出对话框时挂起。

我可以访问应用程序的源,但不能访问 OLE 服务器的源。

这是在win2k3上。

4

1 回答 1

0

我通过某种或多或少可靠的解决方法解决了这个问题,具体取决于弹出窗口文本标题的唯一性。

我写了一个小程序,它使用 扫描所有顶级窗口EnumWindows(),使用 获取它们的标题GetWindowText(),将标题与程序启动时提供的模式进行比较,如果匹配发生,则将 a 发布PostMesssage()到此WM_CLOSE窗口。

这个过程每 T 毫秒重复一次。

该程序与创建 OLE 服务器的过程并行运行,OLE 服务器打开不需要的弹出窗口并在 T 毫秒后关闭它们。

如果每 1000 毫秒运行一次,则不会出现可见的系统负载。

使用 VC10,二进制文件的权重非常轻(<8k),唯一的依赖是msvcr100.dll,如果后者与二进制文件本身放在同一目录中,则不需要设置。我在win7上构建它,它在win2k和win2k3下无缝运行...... :-)

此解决方案的来源(连同 VC10 解决方案/项目文件)可在此处找到:https ://github.com/ealk/wd

于 2013-01-24T16:08:16.580 回答