2012-05-14 5 views
0

Я звоню из моих C++ кода команд два DDE:Слова 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 и документ MyDoc.doc. Шаблон ws.dot содержит макрос FillTemplateAttests, который я пытаюсь выполнить во втором командном вызове DDE. Эти две команды функционировали правильно более 3 месяцев. Несколько дней назад вторая команда прервала работу. Я ничего не могу изменить в этой части кода или в макросе FillTemplateAttests. Прерванное функционирование означает, что когда я вызываю вторую команду, ничего не происходит, даже когда ExecuteMacro call возвращает true (это означает, что все должно быть ОК в соответствии с documentation). Когда я запускаю ту же программу с теми же документами 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) 

ответ

0

Это решило мою проблему, даже когда я не знаю, почему:

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) 

 Смежные вопросы

  • Нет связанных вопросов^_^