AVanti473
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Вечер добрый, или какое там время суток у Вас ))) Очередной вопрос из серии "идея": Некоторые программы требуют запуска в определённый период времени. Это не относится к шароварам (Shareware), триал которых лечится убийством песочницы, либо RemoveSandboxOnExit или RemoveSandBoxOnStart в Package.ini Это относится к программам, которые, скажем, работают даже в зарегистрированном виде, всего год. Да, есть и такие разрабы-извращенцы, у которых очередная версия программы выходит, допустим, в 2013 году, а уже через год надо покупать обновление, или переводить системное время винды. Вроде бы мелочь, но заноза в одном месте. И вот как запустить портабельную версию так, чтобы она считала, что запущена совсем в другое время? Из очевидных способов, встроить в сборку одну из утилит вроде "Cracklock" или "RunAsDate". Но это приличное извращение, да и спорное. Ещё вариант, встроить в сборку .bat фаил с содержимым, что-то вроде: Код: set tempdate=%date:~-10% date 01-01-13 notepad.exe date %tempdate% | ну или: Код: set tempdate=%date:~-10% date 01-01-13 start notepad.exe date %tempdate% | Примером выступил блокнот "notepad.exe", а команда "start" обозначит, что дату нужно вернуть на текущую сразу после запуска программы. И опять же, хоть здесь, в результате извращений, будет стартовать не ярлык от "RunAsDate" или не сторонний софт "Cracklock", а .bat фаил, тем не менее костыль и в Африке костыль. И ещё неизвестно как сработает. А всё потому, что на виртуальных машинах типа PortableVirtualBox этот фокус не проходит, а нет никакой гарантии, что программу не придётся использовать именно на виртуальной машине (той же портабельной VirtualBox), не используя родную ОС. Порывшись в сети, понял, что программа получает (запрашивает) системную дату у винды. Но суть так и не понял. Что вообще в виндовс отвечает за дату и время? Понятно, что винда берёт эти значения у BIOSа, и корректирует (по желанию конечно), согласно серверов точного времени в инете. Значит винда с датой как-то работает! А раз работает, значит в реестре для этого что-то должно быть! Почему интересует реестр? По принципу отключения сборок от инета! Сколько хочешь встраивай и меняй не меняй системные файлы, а сборка слушается только своих ключиков реестра. Как бы так (для примера, ради интереса), с помощью ключей реестра, намекнуть сборке, что ей неоткуда получить системную дату? ))) Или изменить что-то в реестре так, чтобы программа получала какую-то статическую дату? | Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 19:09 11-07-2014 | Исправлено: AVanti473, 19:14 11-07-2014 |
|