WINWORD.EXE / Automation and Normal.dotm Ошибка

2904
tmoore82

У меня возникла проблема со сторонней надстройкой для Word, которая, как мне кажется, связана с ActiveX / автоматизацией. Вот что я знаю:

  • Когда я использую надстройку для создания нескольких новых файлов Word с веб-сайта поставщика, когда я пытаюсь закрыть каждый документ после первого открытого, я получаю сообщение об ошибке, "The file is in use by another application or user. (C:\Users\mooret\AppdData\...\Normal.dotm)"
  • Я не знаю много об ActiveX или автоматизации. Я знаю, что надстройка открывает Word с помощью команды wordapp = new ActiveXObject("Word.Application"), которая, если я правильно понимаю, переводится в winword.exe /automation -embedded.
  • Если Word уже открыт (любым способом), и я открываю второй экземпляр с помощью команды winword.exe /automation, а затем пытаюсь закрыть этот второй экземпляр, я получаю приведенную выше ошибку. Это говорит мне, что проблема не в надстройке. Это что-то в моей среде.
  • У меня есть две машины. Насколько я могу судить, они оба одинаковы. Та же аппаратура, та же сборка Windows 7, те же свойства и надстройки и т. Д. На одной машине я получаю ошибку, на другой - нет. Я посмотрел на каждый параметр / reg ключ / разрешение, я могу думать, что это может быть связано. Я просто не могу найти что-нибудь, чтобы объяснить такое поведение.
  • На компьютере, получающем ошибку, когда я удаляю наш шаблон и позволяю Word создать свой собственный, ошибка исчезает. Тем не менее, я использую один и тот же шаблон на обеих машинах. Я не думаю, что проблема заключается исключительно в шаблоне.

Я прочитал все, что Google может предложить по этому вопросу за последние пару недель, и исключил множество возможностей. Но я все еще не могу заставить ошибку исчезнуть без макроса AutoClose или удаления нашего пользовательского Normal.dotm. Ни одно из них не является хорошим долгосрочным решением. И тот факт, что он работает на одной машине, а не на другой, говорит мне о том, что в этой среде мне что-то не хватает. Любая помощь приветствуется.

ОБНОВЛЕНИЕ : 04/10/13

После дополнительных экспериментов я узнал следующее:

  • Когда вы открываете winword.exe с помощью ключа / автоматизации, Word открывается как объект, а не как приложение .
  • Ошибки по-прежнему возникают только при открытии Word с параметром / Automation.
  • Почему-то эта проблема связана со стилями в документе. Я взял чистый шаблон, который не вызывал ошибку, и начал выгружать XML-файлы из нашего фирменного шаблона, а когда я поменял родной Word styles.xmlна наш, ошибка ушла.
  • Кроме того, когда я выполняю обмен styles.xml, Word начинает спрашивать, хочу ли я сохранить изменения в своем документе, даже если я не внес никаких изменений. Если я отключен от iManage, он также предлагает мне подключиться. ОБНОВЛЕНИЕ : 04/11/13 Оказывается, это была красная сельдь. Подтверждено администратором FileSite, что это происходит только потому, что некоторые из наших надстроек вызывают FileSite. Любые изменения в окружающей среде могут вызывать такое поведение.

Я все еще копаюсь в XML, чтобы посмотреть, что я могу выучить, но если это подсказывает какие-либо идеи, я полностью открыт для предложений.

ОБНОВЛЕНИЕ : 04/10/13

После большого количества копий и вставок, пытаясь выяснить, что именно styles.xmlбыло причиной ошибки. Наконец, с уверенностью могу сказать вот что:

<w:style w:type="paragraph" w:default="1" w:styleId="Normal"> <w:name w:val="Normal"/> <w:qFormat/> <w:pPr> <w:spacing w:after="0"/> </w:pPr> <w:rPr> <w:rFonts w:ascii="Times New Roman" w:eastAsia="Times New Roman" w:hAnsi="Times New Roman" w:cs="Times New Roman"/> <w:szCs w:val="20"/> <w:lang w:eastAsia="en-US"/> </w:rPr> </w:style> 

Разбивая его еще дальше, мы дошли до этой части:

w:eastAsia="Times New Roman" 

Без этого куска все идет без сучка и задоринки. Заранее спасибо за любую помощь с этим.

1

0 ответов на вопрос