1

У меня возникла проблема со сторонней надстройкой для 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-файлы в нашем фирменном шаблоне, а когда я заменил родной styles.xml в Word на наш, ошибка исчезла.
  • Кроме того, когда я 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"

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

0