Программа для отката даты на компьютере

Обновлено: 05.07.2024


На днях собрался посмотреть онлайн-трансляцию матча NFL и обнаружил, что срок действия StreamTorrent истек. Программа бесплатна, но по неведомой причине последняя версия работала только до конца 2010 года. Она предлагает скачать новую версию с сайта, но там кроме рекламы ничего нет. Пришлось сдуть пыль с RunAsDate.

RunAsDate – это утилита из коллекции NirSoft, с помощью которой можно переводить время назад или вперед для отдельных приложений. Системные настройки при этом не изменяются.

Утилита настолько проста, что картинку нет смысла сопровождать словами. При необходимости можно использовать параметры командной строки.

Я перевел дату к началу ноября, и StreamTorrent прекрасно запустился, а я смог посмотреть трансляцию.

Если вы задались вопросом, можно ли с помощью RunAsDate продлевать пробный срок использования shareware-программ, я отвечу словами автора (в переводе).

Мне часто пишут примерно такое: «Я пытался продлить триал программы XYZ, но это не сработало». Запуск программ с другой датой можно использовать по множеству легитимных причин, и RunAsDate создана именно для этих целей. Я никогда не говорил, явно или неявно, что ее можно использовать для продления пробного срока условно-бесплатной программы. Для некоторых программ это сработает, но множество создателей shareware-программ достаточно умны для того, чтобы определить изменение даты или времени и немедленно завершить пробный срок использования.

Выводы делайте сами :)

Вадим - владелец этого блога, и почти все записи здесь вышли из-под его пера. Подробности о блоге и авторе здесь. Поддержать автора вы можете тут.

Вас также может заинтересовать:

Подпишитесь на канал и читайте интересные записи чаще! Есть вопросы? Задайте их в чате.

комментариев 6

какая прекрасная вещь )) пригодится абсолютно точно

Ваша оценка: +2

СПАСИБО вещь что надо

Ваша оценка: +1

Есть еще старая программа TimeBack почти из той же оперы.

Ваша оценка: +1 Ваша оценка: 0

Анна Сергеева. Обмануть время: RunAsDate в помощь тестировщику // СА. 2014. № 1-2.

Анна Сергеева. Обмануть время: RunAsDate в помощь тестировщику // Системный администратор. 2014. № 1-2. С.134-135.


Предлагается способ сократить сроки и сделать более удобным проведение тестовых сценариев, связанных с обработкой проверки значений времени и даты в тестируемых программах.

Пожалуй, на сегодняшний день с уверенностью можно говорить о том, что за последние десять лет в России полностью сформировался отлаженный цикл производства программных продуктов. И разумеется, тестирование в этом цикле заняло свое законное и немаловажное место. Ведь все, что как бы то ни было программируется, так или иначе подвергается проверке (тестированию).И какие только задачи не доводится решать специалистам службы обеспечения качества(Quality Assurance,QA).И тесты производительности, и проверки безопасности, и регрессионное тестирование, и удобство использования, и так далее[1].Постойте-ка, а как же тесты, связанные с обработкой даты и времени? Конечно, и это тоже необходимо!Среди таких тестов могут иметь место такие проверки:

  • срок используемой лицензии;
  • даты создания и редактирования файлов;
  • ведение журналов событий;
  • работа с записями базы данных;
  • срабатывание временных триггеров и многое-многое другое.

Не спорим, что существуют различные подходы к проведению подобных тестов. Самый очевидный среди них, так сказать, «прямо в лоб», - это перевести системное время на компьютере тестировщика. Однако согласитесь, что это может привести к нарушениям в работе целого ряда программ, параллельно запущенных на той же самой машине. Печальный итог, такой вариант развития событий явно не подходит. Нужно каким-то образом научиться переводить время в самих программах, не затрагивая системное. Как же этого добиться?

Различные источники в качестве средств заморозки времени предлагают несколько вариантов, у каждого из которых есть свои особенности.

Например, Loader, обладает весьма неудобным интерфейсом (он состоит из единственной специальной кнопки, на которую нужно нажимать вручную для возврата к нормальному времени, все настройки выполняются только через файл конфигурации, документация отсутствует).

Cracklock воспринимается многими антивирусами в качестве угрозы (поскольку для перехвата функций времени использу е т внедрение в процесс и «патч» ).

SetDate, хоть и неплоха сама по себе, требует редактировать ярлыки программ вручную, что снижает ее удобство.

В качестве сравнительно простого и быстрого, а также, как показал опыт, весьма удобного средства для имитации «виртуального путешествия во времени» автор предлагает задействовать утилиту RunAsDate [2] .

В отличие от аналогов она имеет ряд преимуществ:

весьма удобный и понятный интерфейс, позволяющий задать все нужные настройки;

проект регулярно обновляется, исправляются проблемы, добавляются новые опции;

имеется подробная документация;

поддержка работы с командной строкой, что дает возможность автоматизации запуска/останова.

Среди недостатков можно отметить, что RunAsDate работает только под Windows, так что о кроссплатформенном тестировании речи не идет, зато под Windows — все очень быстро и удобно.

Кстати, данной утилитой можно пользоваться, как любила говаривать Милновская Сова, абсолютно безвозмездно, то есть, даром, поскольку лицензия ее Freeware.

Стоит отметить, что RunAsDate не затрагивает настройки рабочей машины, она всего лишь задает необходимую дату и время для тестируемых программ.

И вот здесь-то, пожалуй, начинается самое интересное, поскольку RunAsDate делает возможным одновременный запуск нескольких приложений, для каждого из которых будут настроены свои дата и время. Такая возможность значительно расширяет горизонты тестовых исследований.

Как же работает RunAsDate? Принцип работы утилиты следующий. Она отслеживает сигналы ядра API, которые возвращают текущие значения времени и даты:

(GetSystemTime, GetLocalTime, GetSystemTimeAsFileTime)

и тут же подменяет данные на дату и время, указанные тестировщиком в настройках утилиты.

Как использовать RunAsDate

Инсталляция утилиты не нужна, а также нет никаких сторонних зависимостей.

Для использования RunAsDate достаточно скопировать в папк у исполняем ый файл (RunAsDate.exe) и запустить. На данный момент разработчиками представлена версия RunAsDate 1.21.

После запуска открывается окно настроек утилиты (Рис. 1), где настраиваются следующие опции:

Application to run — тестируемое приложение для запуска;

Date/Time — дата и время, которые будут установлены;

Parameters — задание параметров командной строки, с которыми будет запущена программа;

Move the time forward according to the real time — позволяет перевести часы вперед к реальному времени;

Return to the current date/time after xx seconds — возврат к текущей дате и времени по истечении указанного числа секунд;

Immediate Mode — изменение даты сразу после старта программы;

Run – запуск приложения в соответствии с указанными настройками даты и времени;

Create Desktop Shortcut — создание именованного ярлыка на рабочем столе;

Close – закрытие без сохранения изменений;

About — вызов окна с информацией о программе.


Рис. 1. Интерфейс утилиты RunAsDate.

Возможность работы RunAsDate с командной строкой

Весьма удобным, особенно при написании скриптов автоматизации, является запуск тестовых утилит из командной строки. И для RunAsDate также реализована такая возможность. Для работы RunAsDate из командной строки используется следующий синтаксис:

RunAsDate.exe [ddmmyyyy] [Программа для запуска]

Для демонстрации в Borland C++ Builder написана программа, которая выводит форму с указанием текущей даты:

void __fastcall TForm1::Timer1Timer(TObject *Sender)

Также форма содержит заголовок с указанием названия приложения и пути к нему. Это помогает отличить два запущенных приложения.

Одно запускается просто так («контрольная группа», с именем Project1):

А другое (тестируемое, которое является его полной копией, со сменой имени с Project1 на Project2) запускается программой RunAsDate.exe. Здесь вместо текущей даты (6 декабря 2013) установлена своя (7 ноября 2013).

D:\Test\RunAsDate.exe 07\11\2013 D:\BCB_prj\Date\Project2.exe

На рисунке 2 собраны результаты работы: формы приложений Project1 (отображает текущую дату) и Project2 (с измененной датой), окно утилиты RunAsDate (с настройками изменений даты для Project2), а также окно системного времени из панели задач Windows.



Рис. 2. Пример перевода времени в тестируемой программе с помощью RunAsDate.

Затем, вручную или с помощью инструментов автоматизации тестирования Windows-приложений, которые предпочитает использовать в своей работе конкретный тестировщик, можно проводить сверку значения даты, отображаемой на форме тестируемого приложения, с заданным в RunAsDate.

В приведенном примере, разумеется, тестирование элементарное, но на то он, собственно, и пример. На практике у данного подхода применений гораздо больше, все определяется сложностью и функциональными возможностями тестируемых приложений.

Во-первых, упомянем системные требования:

Windows Server 2003

Windows Server 2008

Для более старых версий Windows поддержки нет. Кроме того, для тестирования x64 программ используется специальная версия RunAsDate x64.[2]

Также отметим, что одной из особенностей работы RunAsDate является то, что с ее помощьюможно воздействовать только на те приложения, которые не обращаются за значением даты и времени к другим ресурсам (среди таких исключений могут оказаться программы, загружающие время и дату с удаленного сервера). Будьте внимательны при составлении методик тестирования.

Создатели данной утилиты настоятельно не рекомендуют использовать ее при попытках создания бесконечных триал-версий платных программ, поскольку программа была создана вовсе не для этих целей. Возможно, для каких-то конкретных приложений этот трюк и сработает, но не стоит забывать о том, что большинство создателей программного обеспечения успешно обнаруживают подобные вмешательства в работу их программ и попросту прерывают срок действия испытательной лицензии. Пожалуй, не стоит рисковать.

Удобный интерфейс, наличие обновлений, хорошая документация являются ее достоинствами по сравнению с аналогами. П оддержка запуска из командной строки дает возможность автоматизации тестов использующих RunAsDate . Таким образом, сроки тестирования значительно сокращаются, повышается качество разрабатываемого программного обеспечения, а получает тестировщик удовольствие от работы.



Windows XP


Windows 2003


Windows Vista


Windows 2008


Windows 7


Windows 8


Windows 10

Главное окно RunAsDate

Версия программы RunAsDate

Основная информация о программе

RunAsDate - это маленькая утилита, позволяющая вам устанавливать дату и время для программы. RunAsDate не меняет текущей даты и времени на вашем ПК, она всего лишь устанавливает желаемую дату и время для программы. Вы можете запускать множество приложений одновременно, и каждое приложение будет работать с разными датами и временем, в то время как дата и время вашей системы остаются без изменений.

Как это работает?
RunAsDate перехватывает сигналы ядра API, которые возвращают ткущую дату и время ((GetSystemTime, GetLocalTime, GetSystemTimeAsFileTime) и заменяет текущую дату/время на указанные вами.

Использование RunAsDate
RunAsDate не требует инсталляции или дополнительных файлов DLL. Для того, чтобы использовать программу, просто скопируйте исполнительный файл (RunAsDate.exe) в любую папку и запустите его.

В настоящий момент мы не можем правильно запустить приложение, и первое, что может прийти на ум, - это удалить программу и переустановить ее, изменить системное время и т. Д. Однако мы можем столкнуться с проблемами. Некоторые данные были сохранены в реестре, и, хотя мы переустанавливаем их, мы все равно распознаем дату начальной установки или что, несмотря на изменение системного времени, они все еще не работают.

выполнения программы по мере дату

Но правда в том, что есть способ запустить программу в более раннюю дату очень легко. Чтобы сделать это, далеко не ищем какой-то хитрости, связанной с нашей системой, лучше всего использовать сторонний инструмент, который был разработан именно для этой цели. Мы ссылаемся на RunAsDate .

Действия по запуску программы в более раннюю дату

Это программное обеспечение, разработанное NirSoft и что мы можем получить совершенно бесплатно. Чтобы сделать это, мы просто должны пойти в сайт разработчика и загрузите последнюю версию этого инструмента.

Поэтому все, что нам нужно сделать, чтобы запустить программу на нашем рабочем столе, - это дважды щелкнуть исполняемый файл. Автоматически мы увидим, как открывается окно с его интерфейсом, который, как мы видим, довольно прост и интуитивно понятен.

Первое, что мы должны указать, это приложение, которое мы хотим запустить с более ранней датой. Для этого нажимаем кнопку «Обзор» рядом с Применение поле и выберите программу маршрута нашего оборудования, где мы его установили. Далее мы определяем дата, в которую мы хотим, чтобы это бежало или что мы хотим, чтобы программа поняла. То есть, если у нас есть приложение, пробная версия которого истекла на определенную дату, мы должны указать дату до этого.

ejecutar un programa

RunAsDate позволяет нам указать конкретную дату, то есть месяц, день, год и даже время, или указать дату, вычитая количество дней из текущей даты. То есть мы можем указать, что программа выполняется так, как если бы мы возвращались во времени на определенное количество дней.

Просто указав эти две вещи, у нас будет все готово для запуска программы, однако RunAsDate позволяет нам настроить другие детали или параметры например, возврат к текущей дате через X секунд или во время запуска программы, запуск инструмента от имени администратора и т. д. Следовательно, при заполнении первых двух полей всегда можно запустить программу на предыдущем свидание очень быстро и легко.

Более ранние версии Windows несовместимы, а также есть версия x64 доступно для отдельной загрузки, для использования с приложениями x64, с собственного сайта разработчика.

Читайте также: