У меня возникла проблема со сторонней надстройкой для 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 с ключом / автоматизации.
- Почему-то проблема связана со стилями в документе. Я взял чистый шаблон, который не вызывал ошибку, и начал выгружать 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"
Без этого куска все идет без помех. Заранее спасибо за любую помощь с этим.