Ms word 字DDE调用被忽略 我从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)

Ms word 字DDE调用被忽略 我从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),ms-word,dde,c++builder-xe,Ms Word,Dde,C++builder Xe,第一个命令打开模板ws.dot和文档MyDoc.doc。Template ws.dot包含我在第二次DDE命令调用中尝试执行的宏FillTemplateCertificate。这两个命令正常运行超过3个月。几天前,第二个命令中断了功能。我没有在代码的这一部分或宏FillTemplate中更改任何内容。中断的功能意味着,当我调用第二个命令时,即使ExecuteMaro调用返回true,也不会发生任何事情,这意味着根据需要,一切都应该正常。当我在另一台计算机上使用相同的文档ws.dot和MyDoc.

第一个命令打开模板ws.dot和文档MyDoc.doc。Template ws.dot包含我在第二次DDE命令调用中尝试执行的宏FillTemplateCertificate。这两个命令正常运行超过3个月。几天前,第二个命令中断了功能。我没有在代码的这一部分或宏FillTemplate中更改任何内容。中断的功能意味着,当我调用第二个命令时,即使ExecuteMaro调用返回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)
在我看来,“安装”这个词似乎已经坏了。你能帮我找到问题的核心吗

增编:

当我在行中调用这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)

这解决了我的问题,即使我不知道为什么:

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)