2010-03-08 36 views
2

我想捕获使用COM组件的活动Word应用程序的名称和路径但是,每当一个对话框(如保存为..或打印等)打开,我得到一个COMException - 消息过滤器指示应用程序正在忙碌“。是否有解决方法来获取文档详细信息?使用COM捕获Word应用程序

感谢

+0

Word是否以交互方式使用?或仅使用自动化?在后一种情况下,您可以相应地设置“DisplayAlerts”的值以防止大多数弹出窗口。否则,你运气不好,必须等到用户关闭模态对话框。 – 2010-03-08 15:18:34

+0

这个词以互动的方式使用。 如果在打开对话框时我无法获取文档的路径,那么我可能有其他方法知道在最后一个活动词窗口(我已经捕获了所有细节)上打开了一个对话框?我的意思是,有没有其他的方法,一个ID或什么东西只是知道它是最后一个相同的文件? 谢谢.. – 2010-03-08 15:24:22

+1

它可以使用单词应用程序的注册表项来完成吗? – 2010-03-08 22:33:36

回答

0

你可能想要做的是写一个字插件(VSTO IETHER,或者通过实施IExtensibility2)。 Word会发出各种事件的插件(如打开/保存文件等),然后插件会发出任何你需要发信号的外部应用程序的信号,无论你想用什么方式发信号(Com,DDE,Named管道,轮询等)。关于DisplayAlerts的警告。它不会抑制所有警报,因此如果您使用外接程序来操纵和控制单词,那么您只需要不做可能导致对话的事情。