Откат системного времени

Обсуждение программ nnCron и nnCron LITE

Откат системного времени

Postby Digi502 » Tue, 11 Mar 2014, 22:26

Здравствуйте.
Подскажите как реализовать такое решение.
Необходимо каждые 10-15 минут отнять от системного времени несколько секунд.
Например каждую 10-ю минуту при системном времени 3 часа 10 минут 30 секунд отнимаем 10 секунд и получаем 3 часа 10 минут 20 секунд.
Т.е. Системное время виндовс как бы должно накапливать отставание от текущего времени.
Задача должна обязательно выполняться в середине минуты, т.е. не в конце или начале каждой минуты не в 00 секунд, а именно в течении минуты, например в 10 минут 20 секунд.
Спасибо.
Last edited by Digi502 on Fri, 14 Mar 2014, 16:25, edited 1 time in total.
Digi502
 
Posts: 12
Joined: Tue, 11 Mar 2014, 22:14

Re: Откат системного времени

Postby VoidVolker » Wed, 12 Mar 2014, 11:14

Code: Select all
#( Задача_120312032014
\ NoActive
Time: */10 * * * *
SingleInstance
WINAPI: SetLocalTime kernel32.dll
CREATE LocalTime /SYSTEMTIME ALLOT
Action:
  30000 PAUSE
  LocalTime GetLocalTime   \ addr
  wSecond W@ 10 -          \ new_sec
  LocalTime wSecond W!
  LocalTime SetLocalTime   \ ?
  DROP
)#

Хочу отметить несколько важных моментов: надо будет еще отключить синхронизацию времени по интернету - иначе накопления ошибки не будет. И не забываем, что ошибочное время ломает обновление системы и оно может перестать работать. Так же, изменение времени может создать ошибки в работе некоторых других программ.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Откат системного времени

Postby Digi502 » Wed, 12 Mar 2014, 12:05

Сейчас попробуем. Обновление времени отключено, на машине установлено минимум программ, поэтому ошибками связанными со временем можно пренебречь.
Спасибо.
Digi502
 
Posts: 12
Joined: Tue, 11 Mar 2014, 22:14

Re: Откат системного времени

Postby Morituruz » Wed, 12 Mar 2014, 16:51

Я по традиции хочу полюбопытствовать: а зачем это, если не секрет?
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

Re: Откат системного времени

Postby SeMa » Wed, 12 Mar 2014, 16:59

Morituruz wrote:Я по традиции хочу полюбопытствовать: а зачем это, если не секрет?

Я так подозреваю, что это коррекция времени ПК, не подключенного к сети. У меня та же задача, которую я до сих пор не решил, поскольку коррекция с помощью команды ОС time почему-то не работает.
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
User avatar
SeMa
 
Posts: 637
Joined: Fri, 15 Apr 2005, 12:49
Location: Украина

Re: Откат системного времени

Postby Morituruz » Wed, 12 Mar 2014, 17:14

Ясно, как на часах электроника =-)
Наверное глупый вопрос, но может вы time не от админа запускали?
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

Re: Откат системного времени

Postby ANR Daemon » Thu, 13 Mar 2014, 17:57

Digi502 wrote:Здравствуйте.
Подскажите как реализовать такое решение.

Включить и настроить встроенный сервис синхронизации времени, либо установить сторонний.
Учитесь использовать стандартные инструменты для решения типовых задач.
ANR Daemon
 
Posts: 234
Joined: Mon, 26 Feb 2007, 22:59

Re: Откат системного времени

Postby SeMa » Thu, 13 Mar 2014, 18:48

Morituruz wrote:Наверное глупый вопрос, но может вы time не от админа запускали?

Вопрос не глупый (как бы), но!..
Не знаю, что произошло/изменилось (хотя последнее не должно было иметь место, т.к. ПК обслуживаю только я). Экспериментировал где-то месяца 2-3 назад (под админом, поскольку другого аккаунта на ПК нет) — не получалось. Сейчас проверил — и :shock: . Так что вопрос по работе time отпадает.
Задача ув.VoidVolker'a не работает на NT4.0 (где, собственно, и надо выполнять данную процедуру — технологические ПК. И не в сети). Наверно, проблема с функциями в kernel32.dll в данной ОС.

лог:
_corr_time2: Internal error. Error # -1073741819

консоль:
EXCEPTION! CODE:C0000005 ADDRESS:4B229D WORD:W@ REGISTERS:
C40EF8C CC 1D 41 0C 1C 00 00 00 0F 01 00 00 1E 00 00 00 ?.A.............
C40EF9C 26 35 52 00 00 00 00 00 2C FE 40 0C 9D 22 4B 00 &5R.....,?@._"K.
C40EFAC 1B 00 00 00 46 02 01 00 BC EF 40 0C 23 00 00 00 ....F..._?@.#...
USER DATA: C411DCC HANDLER: C40EFC4 RETURN STACK:
C40EFBC : 523559 LocalTime
C40EFC0 : 4B4AD3 CATCH
C40EFC4 : 0 <not found>
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
User avatar
SeMa
 
Posts: 637
Joined: Fri, 15 Apr 2005, 12:49
Location: Украина

Re: Откат системного времени

Postby VoidVolker » Thu, 13 Mar 2014, 20:27

SeMa wrote:Задача ув.VoidVolker'a не работает на NT4.0 (где, собственно, и надо выполнять данную процедуру — технологические ПК. И не в сети). Наверно, проблема с функциями в kernel32.dll в данной ОС.

https://groups.google.com/forum/#!topic ... ACfZYjzBJE
To allow anyone to change the system time on an NT Workstation / Server
carry out the following. You will need to do this on every workstation you
want to run your application on.

    1. Log onto the NT workstation as the local Administrator
    2. Run User Manager (in Start Menu - Programs - Administrative Tools
    (Common))
    3. On the User Manager menu click on Policies - User Rights. This will bring
    up the User Rights Policy dialog box
    4. In the drop down box marked Rights, choose the option 'Change the system
    time'
    5. Click the Add button. This will bring up the Add Users And Groups dialog
    box
    6. Click on the Everyone (All Users) group and click the Add button
    7. Click the OK button to close the Add Users And Groups dialog box
    8. Click the OK button on the User Rights Policy dialog box to save the
    change
    9. Exit User Manager
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Откат системного времени

Postby SeMa » Fri, 14 Mar 2014, 14:09

VoidVolker wrote:
SeMa wrote:Задача ув.VoidVolker'a не работает на NT4.0 (где, собственно, и надо выполнять данную процедуру — технологические ПК. И не в сети). Наверно, проблема с функциями в kernel32.dll в данной ОС.
https://groups.google.com/forum/#!topic/borland.public.delphi.winapi/QACfZYjzBJE...

Я, может, неточно всё описАл... Извините.
под админом, поскольку другого аккаунта на ПК нет
Это как раз и касалось искомого технологического ПК.
time выполняется, а Ваша задача с авторизацией — нет.
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
User avatar
SeMa
 
Posts: 637
Joined: Fri, 15 Apr 2005, 12:49
Location: Украина

Re: Откат системного времени

Postby Morituruz » Fri, 14 Mar 2014, 14:24

Не бывает окошек с 1 пользователем, есть ещё служебные, SYSTEM например =-)
SeMa wrote:time выполняется, а Ваша задача с авторизацией — нет.

Можно предположить, что nncron может выполняться от другого пользователя, а авторизация вроде влияет только на запуск процессов в задаче, так что логично было бы попробовать выполнить команду time из задачи через START-APP
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

Re: Откат системного времени

Postby SeMa » Fri, 14 Mar 2014, 15:10

Morituruz wrote:Не бывает окошек с 1 пользователем, есть ещё служебные, SYSTEM например =-)

Ну, да, конечно. Просто стандартный набор пользователей NT4 с дефолтовым админом.
Morituruz wrote:
SeMa wrote:time выполняется, а Ваша задача с авторизацией — нет.

Можно предположить, что nncron может выполняться от другого пользователя, а авторизация вроде влияет только на запуск процессов в задаче, так что логично было бы попробовать выполнить команду time из задачи через START-APP

Да уж... "Неточность в деталях приводит к непониманию в целом" (не помню, откуда и точность формулировки).
Code: Select all
#( _corr_time
\ *** работает ***
NoActive
SingleInstance
AsLoggedUser
Action:
  30000 PAUSE
" time %Hour@%:%Min@%:34" START-APP
)#

#( _corr_time2
\ *** НЕ работает ***
NoActive
AsLoggedUser LoadProfile
SingleInstance
WINAPI: SetLocalTime kernel32.dll
CREATE LocalTime /SYSTEMTIME ALLOT
Action:
  30000 PAUSE
  LocalTime GetLocalTime   \ addr
  wSecond W@ 10 +          \ new_sec
  LocalTime wSecond W!
  LocalTime SetLocalTime   \ ?
  DROP
)#
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
User avatar
SeMa
 
Posts: 637
Joined: Fri, 15 Apr 2005, 12:49
Location: Украина


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 2 guests