我有一个应用程序实例化本地OLE服务器。由OLE服务器打开的压缩或“自动确认”对话框
在某些情况下,此服务器将打开一个对话框,以响应对其中一个公开方法的调用。
做任何方式都有可能压制这个盒子,或者以某种方式“自动确认”它吗?
问题是应用程序应按预定任务运行,并在弹出对话框时挂起。
我可以访问应用程序的来源,但不能访问OLE服务器的来源。
这是在win2k3上。
我有一个应用程序实例化本地OLE服务器。由OLE服务器打开的压缩或“自动确认”对话框
在某些情况下,此服务器将打开一个对话框,以响应对其中一个公开方法的调用。
做任何方式都有可能压制这个盒子,或者以某种方式“自动确认”它吗?
问题是应用程序应按预定任务运行,并在弹出对话框时挂起。
我可以访问应用程序的来源,但不能访问OLE服务器的来源。
这是在win2k3上。
我通过某种方式或多或少可靠的解决方法来解决此问题,具体取决于弹出窗口文本标题的唯一性。
我写了一个小程序,用EnumWindows()
其扫描所有顶级窗口,graps使用GetWindowText()
他们的标题,标题进行比较,以提供在程序启动的模式,如果出现匹配的职位(使用PostMesssage()
)一个WM_CLOSE
这个窗口。
该过程每T毫秒重复一次。
该程序与创建OLE服务器的进程并行运行,该服务器打开不需要的弹出窗口并在T毫秒后关闭它们。
如果每1000毫秒运行一次,则不会显示可见的系统负载。
使用VC10二进制文件的权重非常小(< 8k),唯一的依赖关系是msvcr100.dll
,如果后者与二进制文件本身放在同一目录下,则不需要设置。我建立它Win7和运行无缝WIN2K下和WIN2K3 ... :-)
该解决方案的来源(与VC10解决方案/项目文件一起)可以在这里找到:https://github.com/ealk/wd
你需要询问显示对话的组件的作者。只有他们会知道。 – Deanna