2013-01-23 13 views
0

我有一个应用程序实例化本地OLE服务器。由OLE服务器打开的压缩或“自动确认”对话框

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

做任何方式都有可能压制这个盒子,或者以某种方式“自动确认”它吗?

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

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

这是在win2k3上。

+0

你需要询问显示对话的组件的作者。只有他们会知道。 – Deanna

回答

0

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

我写了一个小程序,用EnumWindows()其扫描所有顶级窗口,graps使用GetWindowText()他们的标题,标题进行比较,以提供在程序启动的模式,如果出现匹配的职位(使用PostMesssage())一个WM_CLOSE这个窗口。

该过程每T毫秒重复一次。

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

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

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

该解决方案的来源(与VC10解决方案/项目文件一起)可以在这里找到:https://github.com/ealk/wd