![]() |
![]() |
Grigoriy 09.05.2004 - 20:38 |
Есть досовская программа (написана в 92), по невыясненным причинам она работает нестабильно при дате позднее 2003 года. Можно ли (есть ли такие программы?) не меняя дату и время на компе (чтобы не создавались файлы задним числом и т.п.) сменить дату лишь для этой проги? |
eugeneman 1 - 09.05.2004 - 22:42 | Есть такая. Называется: Вперед в прошлое. |
Deflorator 2 - 09.05.2004 - 22:51 | а чем критичен вариант смны времени? |
Grigoriy 3 - 10.05.2004 - 00:54 |
eugeneman, спасибо, сначала подумал - шутите, но уже качаю :)) Deflorator, есть ряд причин, по которым дату на компе нежелательно менять - паралелльные процессы такое не любят - тут и даты файлов и документов и т.п. - о чем я и писал в 0 |
eugeneman 4 - 10.05.2004 - 08:54 | Grigoriy, пожалуйста, но не все такие программы любят, когда программно меняют дату на них ;) Одна такая у меня вообще работать отказалась. |
Grigoriy 5 - 10.05.2004 - 13:58 | Причина, по которой прога работает 1 раз из 10 при дате 2004 мне вообще-то непонятна. Это явно не защита, это глюк какой-то с библиотекой визуальных элементов (типа выбора каталога и листания пунктов меню) еще досовских. Проге 12 лет. Так что должна стерпеть. Во всяком случае попробую |
Scorpion 6 - 12.05.2004 - 23:49 |
Сделай проще - напиши *.bat Файл типа ================== date > date.txt date 01-09-1999 call твоя_прога.exe date date.txt ================== и запускай его. Насчет загрузки текущей даты из файла в последней строке точно не помню, кажется так, почитай хелп на команду date. Если знаешь паскаль или СИ написать такую прогу вообще 5 минут делов :) |
Grigoriy 7 - 13.05.2004 - 09:21 |
И всё время работы программы все файлы, создаваемые в ОС, все данные в БД будут идти с датой 99 :) Этот вариант я уже пробовал - мешанина жуткая. Мне надо именно для одного процесса "немосковское" время |
Boroda 8 - 14.05.2004 - 00:11 |
to 7. <И всё время работы программы все файлы, создаваемые в ОС, все данные в БД будут идти с датой 99 :)> По моему нет... Как я понял текущая дата копируется в файл, потом меняется, потом запускается твоя прога, потом дата снова восстанавливается из файла. Тут фишка в том, что прога запускается параллельно, командой CALL, а значит этот .bat-файл продолжит выполняться и завершит свою работу, не дожидаясь завершения работы вызванной из него проги. :-) Трабла может возникнуть при неверном синтаксисе последней строки, поэтому лучше поэксперементируй на подопытной машине, а не на конечной. Также, вероятно, не стоит запускать прогу в 23:59:59 по системному времени, чтобы при старте .bat-файла не произошёл скачок системной даты на сутки назад. Блин. Сам пишу, и сам же щас на этом накололся :-). Дата не прыгнула, но комп закричал, что указана недопустимая дата и запросил ввод допустимой. То есть задержал завершение пакетника и потребовал вмешательства пользователя. Это не есть гут. Ну и, наверное, время старта выбирать такое, чтоб комп не был занят созданием или изменением своих системных файлов или файлов БД. Чтобы это кратковременное изменение системной даты на них никак не отразилось. :-) - Scorpion, я не догадался. :-) |
Boroda 9 - 14.05.2004 - 00:17 | Нифига. Он на синтаксис ругается. Делаю date date и date<date, а дата одинаково недопустимая. А конкретно ему не нравится, что при загрузке даты из файла она грузится в формате Дн дд-мм-гг, а ему надо просто дд-мм-гг без Дн. С этим надо что-то делать... |
Boroda 10 - 14.05.2004 - 07:05 |
Кажется что-то получилось с использованием строк расширения переменных сред... По крйней мере с cmd.exe на Виндус2000 это работает. :-) @echo off set dd=%date:~3,2% set mm=%date:~6,2% set yy=%date:~11% date 01-09-99 call DISK:\Folder\proga.exe date %dd%-%mm%-%yy% Тока вот с CALL'ом чё-то не то, что я ожидал... :-( |
Boroda 11 - 14.05.2004 - 07:29 | Вместо CALL используй start. |