Я унаследовал программу C #, которая использовалась для автоматизации создания ежедневного отчета в Windows XP Pro SP3 с использованием PDFCreator 1.2.3, MapInfo Professional 11, Word 2003 и Excel 2003. Этот компьютер Win XP находился в домене Active Directory, а Программа C # запускалась как пользователь домена (с правами администратора), при этом пользователь вошел в систему, а рабочий стол заблокирован. Word 2003 был автоматизирован для открытия шаблона, создания документа из шаблона и сохранения документа - и все это из / в общей сетевой папке. Excel 2003 использовался для открытия электронной таблицы с таблицей, связанной с источником данных ODBC, и обновления таблицы, вытягивая новые данные в электронную таблицу. MapInfo использовался для создания изображений карты из источника данных ODBC. PDFCreator использовался, чтобы взять электронную таблицу, текстовый документ и изображения и собрать их все вместе в ежедневный отчет.
Поскольку срок службы XP подошел к концу, я переместил эту программу на виртуальную машину Win 8.1 EE (в том же домене) и установил продукты Office 365 (Word 2013 и Excel 2013) вместе с PDFCreator 1.7.1 и MapInfo Professional. 12 для автоматизации создания этого ежедневного отчета. Эта программа работает нормально при запуске вручную на новой виртуальной машине, но не работает при запуске от имени того же пользователя, что и запланированная задача. Эта запланированная задача настроена на запуск с наивысшими разрешениями и запускается, если пользователь не вошел в систему.
Я понимаю, что здесь задействовано много переменных; операционная система должна была измениться, и мы больше не используем старую версию Office, я также не мог получить более старые версии PDFCreator или MapInfo. Поэтому я сосредоточу вопрос на том, что я могу контролировать. Мне известно о проблемах, с которыми я сталкиваюсь при этом, но не знаю, действительно ли это это реально возможно, учитывая новые операционные системы и приложения (а именно Word 2013 и Excel 2013), с которыми меня попросили попытаться заставить их работать.
Итак, возникает вопрос: как можно автоматизировать Word 2013 из программы C # Interop / COM с помощью планировщика задач для запуска программы с зарегистрированным пользователем и заблокированным рабочим столом?