|
Модераторы: Poseidon, Snowy, bems, MetalFan |
|
Snowy |
|
|||
Эксперт Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Написал класс, управляющий встроенным Планировщиком Windows.
Просьба протестировать. Возможности: - добавление заданий - удаление заданий - список существующих заданий - список периодов срабатывания задания - добавление периодов срабатывания - изменение параметров "путь, комментарий и т.д." В аттаче модули и пример. Не смог победить проблему с повторным запуском. Точнее вроде работает, но максимальный период 9999 минут. Может у кого будут какие идеи, как можно правильно настроить повтор. Без указания конечной даты будет запускаться ежедневно в указанное время. Также есть хитрый флаг TriggerType. Он работает по умолчанию, но можно сменить его на: TASK_EVENT_TRIGGER_AT_SYSTEMSTART - запускать таск при старте системы TASK_EVENT_TRIGGER_AT_LOGON - запускать при логоне Добавлено @ 17:34 ЗЫ. Еженедельный, ежемесячный и ежегодный запуск не реализовывал - ИМХО не нужны они для программного управления. Присоединённый файл ( Кол-во скачиваний: 296 ) TaskSchedulerManager.zip 10,65 Kb |
|||
|
||||
drkot |
|
|||
Ищущий Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 5 Всего: 8 |
Неплохо.
можно вместо минут поставить часы. больше 9999 задать нельзя, там проверка стоит и рубит лишнее. ЗЫЖ я всетаки к сторонним планировщикам склоняюсь (у встроеного зачастую гибкости нехватает). -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
Snowy |
|
|||
Эксперт Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Не спорю. Зато стандартный гарантировано уже есть у пользователя.
Я знаю, что можно задавать в часах. Но эта сволочь никак не хочет на них реагировать. Я и минуты методом тыка хрен знает за сколько заставил работать. 8 раз этот раздел MSDN'a перечитал. Там всё слишком кратко. А начинаешь делать - не слушается Но более-менее нормальный функционал получился. |
|||
|
||||
Elfebet |
|
|||
Опытный Профиль Группа: Участник Сообщений: 545 Регистрация: 15.5.2006 Где: Украина. Запорожь е. Репутация: 2 Всего: 14 |
Я так думаю задавать периодичность по минутам - это не правильно. Стандартном планировщике периодичность задается в: днях, неделях, месяцах и однократно. Т.е. нужно как-то явно указывать планировщику что выполнение будет каждые 3 дня и т.п. так что здесь эти 4 вида периодичности играют важную роль.
-------------------- Программист не должен всё знать... он должен знать где можно посмотреть |
|||
|
||||
drkot |
|
||||
Ищущий Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 5 Всего: 8 |
как впрочем и весь МСДН. Написано красиво, а работать в лучшем случае в 2 ночи начинает кошда по три спички в глазах. Согласен. для внедрения в свое ПО вещь "золотая". (после установки системы ету службу сразу отключаю тк практически не пользуюсь) Добавлено @ 18:01
не ты неправильно понял, есть возможность задать произвольный интервал повлорения (например каждые 5 минут) Добавлено @ 18:03
посмотрю может чего накопаю. -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
||||
|
|||||
Elfebet |
|
|||
Опытный Профиль Группа: Участник Сообщений: 545 Регистрация: 15.5.2006 Где: Украина. Запорожь е. Репутация: 2 Всего: 14 |
вот что я нашел в файле mstask.pas:
наверное соответсвенно и выставляется число от 0 - 9999. Т.е. наверное если: TASK_TIME_TRIGGER_DAILY, то от 1 до 31 TASK_TIME_TRIGGER_WEEKLY, то от 1 до 52 тока вот не понял TASK_TIME_TRIGGER_MONTHLYDATE и TASK_TIME_TRIGGER_MONTHLYDOW.... сто пудова от 0-9999 - может быть не только минуты... -------------------- Программист не должен всё знать... он должен знать где можно посмотреть |
|||
|
||||
Snowy |
|
|||
Эксперт Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Ну там далеко не так всё просто.
Я попозже сделаю перегруженные функции для добавления других вариантом. Сейчас вариантов два: Задавать период в минутах, либо ежедневный запуск. Но можно сделать настройку интервала в днях. Можно и по дням недели. Можно и по дням месяца. Год, пожалуй делать уже не буду. Хотя в принципе можно. Посмотрим. С периодом проблем нет. Проблемы с повторением.
|
|||
|
||||
Elfebet |
|
|||
Опытный Профиль Группа: Участник Сообщений: 545 Регистрация: 15.5.2006 Где: Украина. Запорожь е. Репутация: 2 Всего: 14 |
Snowy, прошу помоги разобраться как это выставлять период. что у меня ничего не получается. (ну к примеру выставить Ежемесячно, с расписанием по месяцам и выбор месяцов). ну прям горит
-------------------- Программист не должен всё знать... он должен знать где можно посмотреть |
|||
|
||||
Snowy |
|
|||
Эксперт Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Пока никак. Нужно доработать такие возможности.
Если хочешь сам попробовать, то дорога тебе в MSDN. Но не думаю, что разберёшься - тап придумано, как обычно через заднюю ногу. |
|||
|
||||
Elfebet |
|
||||
Опытный Профиль Группа: Участник Сообщений: 545 Регистрация: 15.5.2006 Где: Украина. Запорожь е. Репутация: 2 Всего: 14 |
Все таки что хотел узнать - узнал и разобрался. Вот я сделал маленькую програмку подобно планировщику задач (но не все возможности реализованы). Вот основной код создания задания
И еще планировщик задания будет запускать задания если он конечно не отключен и нужно ставить обязательно имя и пароль пользователя, елси пароль пустой то задание не запуститься. Snowy, спасибо за помощь! Прошу оценить. Это сообщение отредактировал(а) Elfebet - 30.8.2006, 09:20 Присоединённый файл ( Кол-во скачиваний: 250 ) Scheduler.zip 13,85 Kb -------------------- Программист не должен всё знать... он должен знать где можно посмотреть |
||||
|
|||||
Snowy |
|
|||
Эксперт Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Ну надо же. И даже работает
Доработаю свой класс, если кому нужно будет. Пока не нужно - не буду на это время тратить. |
|||
|
||||
drkot |
|
|||
Ищущий Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 5 Всего: 8 |
Правилно. Главное принципы понять, чтоб когда понадобится парева меньше было.
-------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
Snowy |
|
|||
Эксперт Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
ХМ. Только щаз заметил, что у тебя расписание задаётся в момент создания.
А как же несколько расписаний? Если так уж нужен ежемесячный запуск, то можно и моим классом создать 12 расписаний - по одному на каждый месяц Хотя конечно по честному нужно делать полнофункционал... Но лень Полноценное управление и так есть - через стандартную управлялку шедулером. А данная фень нужна только для автоматического создания задания. Например запускать себя автоматом по ночам. |
|||
|
||||
Elfebet |
|
|||
Опытный Профиль Группа: Участник Сообщений: 545 Регистрация: 15.5.2006 Где: Украина. Запорожь е. Репутация: 2 Всего: 14 |
Snowy, совершенно верно! Лень. И я не ставил задачу сделать несколько расписаний.
Добавлено @ 16:21 ну если вдруг кому-то понадобится несколько расписаний, могу и доработать... -------------------- Программист не должен всё знать... он должен знать где можно посмотреть |
|||
|
||||
SamStone |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 2.10.2006 Репутация: нет Всего: нет |
Апну тему в надежде на ответ (и чего я ее на месяц раньше не нашел? )
У планировщика можно выставить крыжик чтобы уведомлять юзверя о пропущеных заданиях (комп был выключен и прочее). Можно ли вытащить пропущенные времена запуска или самому придется высчитывать? |
|||
|
||||
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |