![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
в определенное время запуск
Женя © (2009-04-05 19:12:00)как запустить программу копирование в определенное время ежедневно!
Плохиш (2009-04-07 11:06:00) [1]Прикольно, в "казахстане" закончились вакансии сантехников и дворников, всех теперь в программеры отправляют :-))
Ega23 (2009-04-07 10:09:00) [2]
> а перехода на летнее зимнее время в казахстане нет ;) отменили!
В Кзахстане - да, давно уже отменили. Но от Усть-Каменогорска до Барнаула - 250 км всего...
> добавить её в автозапуск соответственно настройки из файла
> прочитает!
У тебя может не хватить прав добавить её в автозапуск для всех пользователей.
> да и не надо так сильно голову заморачивать на этот счет
Это очень хороший пример для остуживания горячих голов. Дескать - 5 минут и готово
Женя (2009-04-06 21:37:00) [3]
> Ega23 © (06.04.09 19:04) [33]
>Нормальный вариант. Комп может быть перезагружен.
добавить её в автозапуск соответственно настройки из файла прочитает!
а перехода на летнее зимнее время в казахстане нет ;) отменили!
да и не надо так сильно голову заморачивать на этот счет
всем спасибо разобрался маломальски!
AndreyV (2009-04-06 19:48:00) [4]> [33] Ega23 © (06.04.09 19:04)
> И всё это для простейшей программки с таймером.
Да для ежедневного бэкапа системное время и подойдёт по такой схеме:
// Здесь получим значение LastBackupDateTime из реестра или откуда ещё
if (Now() > (Date() + BackupTime) and ((BackupDateTime - LastBackupDateTime) > 1) then
begin
Backup;
LastBackupDateTime = Now();
// Здесь сохраним значение LastBackupDateTime в реестр или куда ещё
end;
Anatoly Podgoretsky (2009-04-06 19:43:00) [5]
> как допустим в 13.20 выполнить эту команду не используя
> назначения задач?
Надо Женя, надо!
Ega23 (2009-04-06 19:04:00) [6]
> жжешь
Нормальный вариант. Комп может быть перезагружен. На компе могут войти под другой учётной записью. Комп может быть выключен на несколько дней.
А программа, по-идее, должна сделать то, что ей положено.
Про переходы на зимнее-летнее время (а твои 3:00 как раз в это дело попадают) я уже говорил.
И всё это для простейшей программки с таймером.
Женя (2009-04-06 18:57:00) [7]12
спасибо большое пойду пробовать!!!!
вот только защиту от Тополь-М напишу!!!
жжешь
12 (2009-04-06 18:37:00) [8]4. Отключение электричества
5. Прямое попадание Тополь-М
Ega23 (2009-04-06 18:32:00) [9]
> if abs(time - strtotime('13:20:00')) < strtotime('00:00:02')
1. TimeFormat на разных машинах может быть разный.
2. Если интервал таймера меньше двух секунд, то может быть "ой".
3. Время может быть синхронизовано с внешним источником аккурат в дельте таймера (ну это маловероятно).
3. Время может быть переведено ручками (а вот это уже вполне вероятно).
12 (2009-04-06 18:28:00) [10]2ega
а я - вредный :)
... onTimer
begin
if abs(time - strtotime('13:20:00')) < strtotime('00:00:02')
then ...
Ega23 (2009-04-06 18:25:00) [11]
> как допустим в 13.20 выполнить эту команду не используя
> назначения задач?
Сначала тебе нужно прочитать, что такое время. Что такое UTC, что такое часовой пояс. Что такое синхронизация времени. Что такое "13.20".
Женя (2009-04-06 18:20:00) [12]12 спасибо!!!
а может про таймер расскажешь?
как допустим в 13.20 выполнить эту команду не используя назначения задач?
12 (2009-04-06 18:18:00) [13]нафиг cmd ?
uses ShellAPI
ShellExecute(Handle, 'open','at',' 23:00 /every:M,T,W,Th,F,S,Su "C:\Demo\backup.bat"', nil, SW_SHOWNORMAL);
Игорь Шевченко (2009-04-06 18:15:00) [14]
> лучше скажи как!
Я уже все сказал - изучить API планировщика.
И не спамь
Женя (2009-04-06 18:04:00) [15]ну так можно это сделать или нет?
Женя (2009-04-06 17:39:00) [16]
> Игорь Шевченко © (06.04.09 17:36) [21]
> > так не хочет!зараза
лучше скажи как!
Женя (2009-04-06 17:38:00) [17]
> Игорь Шевченко © (06.04.09 17:36) [21]
> > так не хочет!зараза
ещё какая!
Игорь Шевченко (2009-04-06 17:36:00) [18]
> так не хочет!
зараза
Женя (2009-04-06 17:29:00) [19]ShellExecute(Handle, 'open','C:\WINDOWS\system32\cmd.exe','at 23:00 /every:M,T,W,Th,F,S,Su C:\Demo\backup.bat', nil, SW_SHOWNORMAL);
так не хочет!
Женя (2009-04-06 17:28:00) [20]как при помощи ShellExecute()
передать параметры в командную строку?
вообщем открыть ее и закинуть такую строку at 23:00 /every:M,T,W,Th,F,S,Su C:\Demo\backup.bat', nil, SW_SHOWNORMAL