我从我的C++代码调用两个DDE命令:
FormDde->DdeClientConv1->ExecuteMacro("[AddAddIn \"C:\\Projects\\wscs-trunk\\bin\\ws.dot\", 1][FileOpen .Name = \"C:\\Projects\\wscs-32x\\doc\\MyDoc.doc\]",false)
FormDde->DdeClientConv1->ExecuteMacro("[ToolsMacro .Name = \"FillTemplateAttests\", .Run]", false)第一个命令打开模板ws.dot和document MyDoc.doc。模板ws.dot包含宏FillTemplateAttests,我试图在第二个DDE命令调用中执行该宏。这两项命令在3个多月内正常工作。几天前,第二命令中断了工作。我没有在代码的这一部分或宏FillTemplateAttests中更改任何内容。中断功能意味着,当我调用第二个命令时,即使ExecuteMacro调用返回true (根据文档,这意味着一切都应该正常),也不会发生任何事情。当我在另一台计算机上使用相同的文档运行相同的程序时,ws.dot和MyDoc.doc就可以了。当我两次调用第二个命令时,它实际上被执行(但只有一次-第一次调用被忽略):
FormDde->DdeClientConv1->ExecuteMacro("[AddAddIn \"C:\\Projects\\wscs-trunk\\bin\\ws.dot\", 1][FileOpen .Name = \"C:\\Projects\\wscs-32x\\doc\\MyDoc.doc\]",false)
FormDde->DdeClientConv1->ExecuteMacro("[ToolsMacro .Name = \"FillTemplateAttests\", .Run]", false)
FormDde->DdeClientConv1->ExecuteMacro("[ToolsMacro .Name = \"FillTemplateAttests\", .Run]", false)在我看来,Word的安装好像坏了。你能帮我找到问题的核心吗?
增编:
当我在行中调用这3个命令时,所有命令都被执行:
FormDde->DdeClientConv1->ExecuteMacro("[AddAddIn \"C:\\Projects\\wscs-trunk\\bin\\ws.dot\", 1][FileOpen .Name = \"C:\\Projects\\wscs-32x\\doc\\MyDoc.doc\]",false)
FormDde->DdeClientConv1->ExecuteMacro("[Beep]", false);
FormDde->DdeClientConv1->ExecuteMacro("[ToolsMacro .Name = \"FillTemplateAttests\", .Run]", false)发布于 2012-05-14 12:11:11
这解决了我的问题,即使我不知道为什么:
FormDde->DdeClientConv1->ExecuteMacro("[AddAddIn \"C:\\Projects\\wscs-trunk\\bin\\ws.dot\", 1][FileOpen .Name = \"C:\\Projects\\wscs-32x\\doc\\MyDoc.doc\]",false)
FormDde->DdeClientConv1->ExecuteMacro("[]", false);
FormDde->DdeClientConv1->ExecuteMacro("[ToolsMacro .Name = \"FillTemplateAttests\", .Run]", false)https://stackoverflow.com/questions/10580573
复制相似问题