Мы используем COM-объекты для доступа к таблицам Excel в службе NT (через Windows Scripting Host). До Vista это работало прекрасно, но начиная с Vista, мы получаем эту ошибку:
Microsoft Office Excel не может получить доступ к файлу 'c: \ myfiles \ test.xls'. Есть несколько возможных причин:
- Имя файла или путь не существует.
- Файл используется другой программой.
- Книга, которую вы пытаетесь сохранить, имеет то же имя, что и текущая открытая книга.
Я попытался изменить настройки входа в систему службы NT, чтобы использовать мою учетную запись, учетную запись администратора и локальную систему. Я просмотрел локальную политику безопасности и ничего не нашел. Я потратил несколько дней на поиск в Microsoft KB безрезультатно.
Если скрипт выполняется из консольного приложения, он работает нормально. Файл открывается и обрабатывается без проблем. Ошибка возникает только при выполнении из контекста службы.
Если служба работает в Windows XP или Server 2003 с пакетом обновления 1 (SP1), она также работает нормально. Это происходит только в Vista (и теперь мы получаем сообщения о сбое в Server 2003 SP2)!
Код, за что он стоит, исключительно прост:
dim xl_app
Set xl_app = CreateObject("Excel.Application")
xl_app.Workbooks.Open mypath,0,1
Я подозреваю, что у этого человека может быть та же проблема:
http://bytes.com/forum/thread819740.html