Проблема С Office 2013

Тема в разделе "Lotus - Программирование", создана пользователем DamirAstana, 27 янв 2015.

  1. DamirAstana

    DamirAstana Member

    Репутация:
    0
    Регистрация:
    26 май 2014
    Сообщения:
    9
    Симпатии:
    0
    Всем привет.

    С появлением Windows 8.1 и офиса 2013 выявилась такая проблема, что winword.exe висит в процессах после выполнения метода Quit() где то минут 5, потом процесс убивается и все идет нормально

    Код (Text):
    Set wdoc=CreateObject("Word.Application")  
    wdoc.Documents.Open(templateFile)
    Set wordDoc=wdoc.ActiveDocument
    wdoc.Visible=false

    ' тут у нас заполнение шаблона ворда
    .....

    createWordFile = "templateName.doc"
    wordDoc.SaveAs(createWordFile)     
    wordDoc.close
    wdoc.Quit
    Set wdoc = Nothing
    Рабочая станция является моноблоком. Причем ворд висит и сам по себе, когда открываешь и закрываешь любой ворд документ. Отключал все надстройки для ворда - не помогло. В процессах висит и Excel.

    Кто нибудь сталкивался с такой проблемой?
     
  2. savl

    savl Well-Known Member
    Команда форума Lotus team

    Репутация:
    0
    Регистрация:
    28 окт 2011
    Сообщения:
    2.109
    Симпатии:
    156
    Думаю это особенность win8 (в частности metro-UI), как и в MacOS 10.10, это делано для быстрого переключения между приложениями в metro-UI. Многозадачность, как её видят или как она есть... Процессы не завершаются до конца сразу, а висят какое-то время.
    Ось предназначалась для всех устройств с сенсорным вводом, так что в стандартные desk тоже перекочевало.
    Надеюсь в Win10 будет все же иначе.
    Думаю надо ковырять в сторону настроек оси, это явно не косяк Office.
    Если есть возможность, то можно попробовать поставить на вторую машину с Win8 другой Office (2007/2010) и проверить.
    У нас сервак 2012(ядро win8 без metro-ui) + Office 2010, проблем нет.
    Нашел еще такой совет, но не уверен что это то что нужно, хотя...:
     
  3. garrick

    garrick Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    26 окт 2009
    Сообщения:
    840
    Симпатии:
    66
    Всегда сначала используйте GetObject, а если объект не получен (будет ошибка, код не помню), тогда уже CreateObject.
     
  4. DamirAstana

    DamirAstana Member

    Репутация:
    0
    Регистрация:
    26 май 2014
    Сообщения:
    9
    Симпатии:
    0
    Спасибо за ответы.

    В первую очередь об этом тоже подумали, но:
    1) Если объекта нет, то мы его создаем, получается потом его нужно будет тоже завершать, что опять же не получится, хотя конечно можно один процесс оставить, пусть висит =)
    2) Придется переписывать везде где используется office, а решение нужно сейчас, без изменения программного кода, пока что.

    Насчет win8, думаю так и есть. В инете пару проблем таких встречаются, но толком решения не описаны. Вот найти бы это ПО или службу которая так делает... Тоже есть обычный ноут, с windows 8.1, установили на него office 2013 - процесс завершается после закрытия сразу.
     
  5. oshmianski

    oshmianski Достойный программист
    Lotus team

    Репутация:
    0
    Регистрация:
    25 апр 2012
    Сообщения:
    542
    Симпатии:
    13
    DamirAstana
    после Quit можно (да и наверное нужно) делать Set wdoc = Nothing
     
  6. garrick

    garrick Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    26 окт 2009
    Сообщения:
    840
    Симпатии:
    66
    DamirAstana, если не секрет, что вы такое делаете с Word'ом? Мне кажется некорректно "убивать" Word на рабочем месте пользователя, т.к. он мог открыть его самостоятельно и что-то в нём редактировать. А тут вы берёте его и закрываете...
     
  7. DamirAstana

    DamirAstana Member

    Репутация:
    0
    Регистрация:
    26 май 2014
    Сообщения:
    9
    Симпатии:
    0
    Ну как бы на процессы пользователя это не влияет. Я убиваю свой созданный процесс.
     
  8. savl

    savl Well-Known Member
    Команда форума Lotus team

    Репутация:
    0
    Регистрация:
    28 окт 2011
    Сообщения:
    2.109
    Симпатии:
    156
    garrick
    Подпроцесс, если быть точнее, причем на каждый созданный документ он свой, если имена файлов разные.
    Основной процесс notes2.exe, подпроцесс winword.exe.
    По логике, если убить все связные лотусовые процессы, то убивается и вызванные подпроцессы.
    Такое можно наблюдать когда открываешь вложения из почты и затем убивать лотусовые процессы: связные процессы закрываются.
    Другой дело когда используешь что-то типа кода, который тут, убивается всё.
     
  9. garrick

    garrick Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    26 окт 2009
    Сообщения:
    840
    Симпатии:
    66
  10. savl

    savl Well-Known Member
    Команда форума Lotus team

    Репутация:
    0
    Регистрация:
    28 окт 2011
    Сообщения:
    2.109
    Симпатии:
    156
    Закрывает, но если программно создавать процесс и при этом иметь открытый - это 2 разных процесса.
    Если создать несколько программных процессов (разные переменные Application Object), то они тоже будут разными.
    А вот книги открытые в одном процессе, при его закрытии - закроются все.
     

    Вложения:

    • Проблема С Office 2013
      wordtask2.png
      Размер файла:
      79,8 КБ
      Просмотров:
      14
    • Проблема С Office 2013
      wordtask.png
      Размер файла:
      59,8 КБ
      Просмотров:
      14
  11. akat

    akat Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    16 июн 2010
    Сообщения:
    243
    Симпатии:
    7
    Может это как-то связано с сервисом SuperFetch и включенным ReadyBoost.
    (Сам сейчас проверить не могу, "Виндоуз ИксПи бикоз тугеза" :)
     
  12. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Репутация:
    1
    Регистрация:
    27 авг 2008
    Сообщения:
    6.357
    Симпатии:
    334
    большинство процессов в виндятке привязано какну к окну (как следует из названия ОС ;) ) м.б. имеет смыл искать процесс по названию окна
     
Загрузка...
Похожие Темы - Проблема Office 2013
  1. _alexis_
    Ответов:
    4
    Просмотров:
    73
  2. Lisenok
    Ответов:
    19
    Просмотров:
    267
  3. thunder
    Ответов:
    1
    Просмотров:
    122
  4. SevenEight
    Ответов:
    0
    Просмотров:
    124
  5. imendan
    Ответов:
    13
    Просмотров:
    278

Поделиться этой страницей