|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.05.2015, 17:06 | #1 |
Пользователь
Регистрация: 05.07.2012
Сообщений: 11
|
Delphi XE7 и Excel 2010
Здравствуйте, уважаемые коллеги и любители программирования.
Помогите, пожалуйста, решить следующую проблему. Имеются следующие ОС и ПО: Windows 7 Профессиональная x86 (32-битная) sp1, Microsoft Office Professional 2010, Embarcadero RAD Studio XE7: Delphi XE7, встроенный планировщик заданий (taskschd.msc). Написал программу, которая создает Excel-файл, вносит в ячейки данные, форматирует книгу и сохраняет ее. Программа, можно сказать, работает на ура, кроме одного случая. При запуске ее через планировщик заданий Excel-файл не сохраняется, т.е. не работает метод FWorkbook.SaveAs (как и FWorkbook.Save). Происходит следующая ошибка: "Метод SaveAs из класса Workbook завершен неверно". Помогите решить вопрос. Ниже привожу исходный код функции из моей программы по работе с Excel. Код:
1. Функцию я упростил (см выше); создал отдельный проект, состоящий только из этой функции, ее автозапуска, логирования и автозакрытия приложения - ситуация аналогичная. 2. Возможно (но проверить возможности пока не имею): а)Если программу скомпилировать в Delphi 2010, то все будет работать; б)Если программу, скомпилированную в любой версии Delphi ( 2010 - XE7), запускать под Windows XP либо Windows 2003, то все будет работать. 3. Начиная с Delphi XE2 в проекты часто вставляю: Код:
4. Ещё раз повторюсь. Программа не работает при запуске через ПЛАНИРОВЩИК ЗАДАЧ. При ЛЮБОМ другом запуске (через среду разработки, через файл, через ярлык, с любыми правами) ВСЕ РАБОТАЕТ. 5. Во вложении проект, созданный в XE7. Последний раз редактировалось GNDragonFly; 21.05.2015 в 19:50. |
21.05.2015, 18:20 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
exe где находится? Как у планировщика с полномочиями на запись в каталог exe-шника? Немного не так конечно - с какими полномочиями он exe запускает?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
21.05.2015, 19:47 | #3 | |
Пользователь
Регистрация: 05.07.2012
Сообщений: 11
|
Цитата:
2) Также аналогичные мои программы, которые запускаются через планировщик, создают каталоги и подкаталоги, копируют и удаляют файлы. Соответственно, проблем с записью на диск (именно программой) нет, но про приложение MS Excel 2010 Pro (а именно им сохраняется книга) ничего сказать не могу. Помимо этого уточню: 1) Пробовал создавать задание в планировщике от имени текущего пользователя, от админа ПК и от админа доменной сети - результаты одинаковы. PS комп входит в домен. 2) Пути для сохранения excel-файла ставил разные: а) корень диска C; б) папка на диске C; в,г) аналогично с дисками D и E; д) в папке Delphi проекта; е) в папке "Мои Документы"; ж) в расшареной для других пользователей сети папке на моем компе, со всеми правами чтения и записи. Другими словами перепробовал практически все варианты, которые пришли в голову. Но! Вполне возможно, что из-за политики безопасности Windows 7 для задач, запущенных через планировщик, и возникают эти грабли. Сегодня проверил. Программа, скомпилированная в Delphi XE2 и XE7 нормально (без сбоев) отрабатывает через планировщик задач в Windows XP sp3. Про Delphi 2010 не проверял. Последний раз редактировалось Stilet; 25.05.2015 в 14:37. |
|
25.05.2015, 13:36 | #4 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,869
|
|
26.05.2015, 08:53 | #5 |
Пользователь
Регистрация: 05.07.2012
Сообщений: 11
|
|
26.05.2015, 09:52 | #6 |
Пользователь
Регистрация: 05.07.2012
Сообщений: 11
|
В общем, частично я проблему решил.
В планировщике заданий (Windows 7 pro sp1 с обновлениями на апрель) при выборе действия "Создать простую задачу..." создавалась СКРЫТАЯ задача, хотя галочка в этом пункте не стоит. Решилось довольно тривиально: передергиванием галочки "Скрытая задача". Соответственно задача запускается "видимой" и сохранение Excel-файла происходит без ошибок. Однако хотелось бы решить вопрос, когда задача запускается скрытой. Так что если есть идеи - делитесь. |
03.06.2015, 12:22 | #7 |
Пользователь
Регистрация: 05.07.2012
Сообщений: 11
|
Все возвращаюсь к своей проблеме (не для поднятия темы). Путем экспериментов оказалось, что предыдущий пост (за 26.05.2015) неверный.
Передергивание галочки "Скрытая задача" ничего не дает, т.к. проблема не в этом пункте,а в пункте: "Выполнять только для зарегистрированного пользователя". Если точка стоит на этом пункте, то выполнение задачи идет не в скрытом виде, и Excel-файл сохраняется без проблем. Если же стоит точка "Выполнять вне зависимости от регистрации пользователя", то файл не сохраняется. Другими словами, если сервак (либо комп) включен, но пользователь не залогинен, то при выборе 1-го пункта задача не выполняется, при выборе второго пункта создается "скрытая" задача, влекущая за собой проблему, описанную в 1-м посте. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Оформление кода в Delphi XE7 | Shouldercannon | Общие вопросы Delphi | 2 | 22.02.2015 11:17 |
Экспорт из Excel в MS SQL Server 2008 с помощью Delphi XE7 | TimurUfa | БД в Delphi | 0 | 16.01.2015 12:20 |
Delphi xe7 bluetooth андройд | Volt | Общие вопросы Delphi | 2 | 12.12.2014 13:34 |
Delphi XE7 & Genymotion | NEoMASTERR | Общие вопросы Delphi | 3 | 04.10.2014 22:22 |
Delphi и excel 2010 | Immo | Общие вопросы Delphi | 4 | 08.05.2013 22:19 |