Re: Запуск exe-файла из планировщика заданий | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
dimuhametov
О чем и речь: не IF FILE(), а TRY...ENDTRY. |
Re: Запуск exe-файла из планировщика заданий | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Не надо никаких диалогов для программы запускающейся из планировщика - если нужен лог, то только в файл. Плюс глобальный обработчик ошибок - опять же с логом в файл (т.к. фокс 9-й, то вполне пойдёт сделать объемлющий ВЕСЬ код try блок). Плюс специально предназначенная для "неинтерактивных" приложений установка SYS(2335,1) - хотя она, насколько я понимаю, не повлияет на работу COM серверов типа экселя, но по крайней мере в собственно фоксовой программе запускаемой не интерактивно никаких "диалогов" уже не будет - которые будут показаны невесть где и "подвесят" процесс. С Workbooks(1) не стоит работать. Метод WorkBooks.Add возвращает ссылку на вновь созданную книжку - по этой ссылке и надо с ней работать, а не по каким-то там Workbooks(1), который вообще не обязан быть ссылкой на ЭТУ свежесозданную книжку (мало ли кто/когда/как откроет ещё что-то в этой копии экселя). ActiveSheet, Activate, Select, Selection - крайне не рекомендуется использовать в подобном коде работы с экселем. Это вряд ли причина твоих проблем, но для надёжности и чистоты кода стоит так поступать. В SaveAs стоит указать 2-й параметр - тип сохраняемого файла. Раз уж расширение xlsx используется. А в общем я не уверен что можно хоть как-то побороть неадекватное поведение экселя при "не интерактивной" его работе - запуске из планировщика. Для теста сделай вместо создания новой книги открытие и модификацию существующей - т.е. WB.Open, чего-то поменять скажем на 1-м листе, и WB.Save - не SaveAs. Для теста возьми книжку открывающуюся в твоей версии экселя без лишних вопросов/предупреждений/диалогов и прочего - в текущем формате, с простым именем и "правильным" расширением, без макросов, внешних связей и прочих наворотов. Плюс ко всему, проверять надо на машине БЕЗ антивирусов. Это г*но способно много кровушки попить при "программной" работе с офисными документами... Альтернативный вариант (хотя он может и не подойти к твоей задаче) - создавать экселевский документ БЕЗ экселя. Новоформатные xlsx это особого рода архивы с xml-ями внутри, так что в принципе кроме zip-архива всё "сформировать" можно и в чистом фоксе, без внешних компонент, особенно таких сложных/массивных как собственно эксель. ------------------ WBR, Igor |
Re: Запуск exe-файла из планировщика заданий | |
---|---|
Vuk Автор Сообщений: 61 Дата регистрации: 07.12.2005 |
Подправил.
|
Re: Запуск exe-файла из планировщика заданий | |
---|---|
Vuk Автор Сообщений: 61 Дата регистрации: 07.12.2005 |
Хочу сказать, что проблема не в коде (или его вариациях):
Messagebox я использовал, чтобы посмотреть, выдает ли программа хоть какие-то информационные окна на экран при запуске через планировщик заданий. Оказывается при запуске программы, как фоновый процесс, никакие окна и сообщения на экран не выводятся. Попробую сделать то, о чем написал Igor Korolyov ниже. Может получиться. Исправлено 1 раз(а). Последнее : Vuk, 16.11.17 06:59 |
Re: Запуск exe-файла из планировщика заданий | |
---|---|
Vuk Автор Сообщений: 61 Дата регистрации: 07.12.2005 |
Попробую сегодня.
|
Re: Запуск exe-файла из планировщика заданий | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Игорь, ты не понял смысл сих действий. Это трассировка хода программы в реальном времени. И нужна только для нахождения проблемы. Vuk Попробуй вообще выкинуть всю логику. Всю работу с excel. (Тем более что до нее вроде как и не доходит) Обвешай мессагами
Ну и выведи куда то путь. Ну и конечно можно это в файл лога, тока по мне так неудобней. ------------------ |
Re: Запуск exe-файла из планировщика заданий | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Похоже, у каждого свой Excel.
|
Re: Запуск exe-файла из планировщика заданий | |
---|---|
Перминов Игорь Сообщений: 1591 Откуда: Красная Орловка Дата регистрации: 16.09.2001 |
И еще, для сохранения в формате Excel 2007/2003:
------------------ Без коментариев.. |
Re: Запуск exe-файла из планировщика заданий | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Попробовал ради интереса запустить приведенный код в ХР из-под суперадмина (VFP9, Excel 2010) - все проходит без проблем. Т.е., возможно все дело с проблемной командой все-таки в правах на выполнение чего-то именно для фокспро? Хотя в принципе можно еще конечно допустить и какую-то специфику ее отработки именно в среде Windows 10.
Можно попробовать еще повысить уровень самого запускаемого файла, как описывалось в статье Крейга Бойда, перевод: forum.foxclub.ru Вроде на первый взгляд будет то же самое, но возможно окажутся и какие-то нюансы. Попытка не пытка. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: Запуск exe-файла из планировщика заданий | |
---|---|
Перминов Игорь Сообщений: 1591 Откуда: Красная Орловка Дата регистрации: 16.09.2001 |
------------------ Без коментариев.. |
Re: Запуск exe-файла из планировщика заданий | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Saved НЕ сохраняет файл - только помечает его как "сохранённый". Чем это поможет автору темы? Ему то как раз надо сохранить файл... Про вышенаписанный вариант SaveAs я и говорил - стоит как минимум 2 параметра указывать - кроме имени ещё и формат/тип. Константы, полагаю, автор вопроса сам найти сможет, в том же экселе подсмотреть Только не факт что это повлияет на поведение экселя... При его работе "под контролем и без десктопа". Дело в особенностях работы программ запускаемых из планировщика. Точнее, программ работающих "как сервис" - т.е. БЕЗ доступа к десктопу. Любое телодвижение связанное с попыткой показать какой либо диалог приведёт к зависанию всего процесса, т.к. этот диалог такой программе-сервису попросту негде показывать. Решается сие, естественно, переписыванием программы под такой режим работы. Что нужно фоксу для такого режима, я написал выше, но проблема то с экселем - его не "переписать" никак. Теоретически автор может настроить задачу так, чтобы она работала только когда "юзер залогинен" - по идее тогда задача (т.е. этот фоксовый процесс и запускаемый из него эксель) получат доступ к десктопу пользователя. Возможно что одного этого уже будет достаточно чтобы эксель не "зависал" на сохранении файла. Т.е. возможно что даже и диалога он никакого не покажет. Но, естественно, это приведёт к тому что эта задача НЕ будет выполняться когда пользователь "вышел из системы". И уж совсем коряво это будет выглядеть при установке на сервере. В 10-ке в планировщике изменили фишки по работе задач запускаемых "во время простоя" - при работе на ноутбуках или иных "батарейно-питаемых" системах. Там уже состояние сна ноута не будет считаться "простоем" и во время него не будут запускаться всякие дефрагментации дисков, и прочие "обслуживания системы", пожирающие батарейку. А так принципиальных отличий нет ни от 8.1, 8, 7, ни даже от висты, где, насколько я в курсе, и появился этот "новый улучшенный планировщик". Вот под XP это было совсем другое приложение, со своими особенностями и порядком настройки... ------------------ WBR, Igor |
Re: Запуск exe-файла из планировщика заданий | |
---|---|
pasha_usue Сообщений: 3647 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Не "БЕЗ доступа к десктопу", а в виртуальном десктопе. |
Re: Запуск exe-файла из планировщика заданий | |
---|---|
Равиль Сообщений: 6547 Откуда: Уфа Дата регистрации: 01.08.2003 |
Да, было такое же - ну никак Com объект Excel не хотел работать с файлами (открывать/сохранять) из планировщика без логина пользователя, т.е. без активного десктопа. Обсуждали здесь (еле нашел - оказывается 7 лет пролетело): forum.foxclub.ru и на какое-то время помогло решение с созданием папки C:\Windows\SysWOW64\config\systemprofile\Desktop с установкой прав доступа к ней (Server 2008 R2 64) Но в последующих версиях - увы )) возможно прикрыли эту лазейку и теперь приходится на серваке держать залогиненным специально заведенного юзера. Причем он может висеть в состоянии "отключен" - этого достаточно для нормальной работы. ------------------ Тяжело согнать курсором муху с монитора ... |
Re: Запуск exe-файла из планировщика заданий | |
---|---|
Vuk Автор Сообщений: 61 Дата регистрации: 07.12.2005 |
Спасибо большое за ответы. Я в выходные еще раз все просмотрю и в понедельник напишу о результатах. Код своего единственного prg-файла также покажу.
|
Re: Запуск exe-файла из планировщика заданий | |
---|---|
Vuk Автор Сообщений: 61 Дата регистрации: 07.12.2005 |
Спасибо за код. Попробую.
|
Re: Запуск exe-файла из планировщика заданий | |
---|---|
Foxtrot Сообщений: 3408 Откуда: Куда: Дата регистрации: 25.04.2003 |
только я заметил проблему ТС?
проблема в самом решении задачи есть куча вариантов сформировать файл нужного тебе формата а вот сам эксель для серверного варианта не годится = отседа и все проблемы ------------------ Мойте ноги, моя ноги вы моете и руки |
Re: Запуск exe-файла из планировщика заданий | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Я писал про альтернативы. Но, полагаю, ты и сам понимаешь во что выливается переделка уже налаженной схемы формирования "документов". Тем более если речь пойдёт о каких "шаблонах" в экселе, или, не дай бог, о собственно его макросах...
А так то оно, конечно, держать офисный пакет на сервере для формирования документов это неправильно... ------------------ WBR, Igor |
Re: Запуск exe-файла из планировщика заданий | |
---|---|
Vuk Автор Сообщений: 61 Дата регистрации: 07.12.2005 |
Мне необходимо сформировать Excel-файл в автоматическом режиме. Я пытаюсь эту задачу решить, как написано выше. Что Вы можете мне предложить?
|
Re: Запуск exe-файла из планировщика заданий | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Зачем, для чего? |
Re: Запуск exe-файла из планировщика заданий | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Самой задачи ведь нет, а есть только ее решение, что и обсуждается. |
© 2000-2024 Fox Club  |