#2
by Rizhij_Nikitos
Ну я как то думал что время системное это время Windows, но время Windows меняется легким движением руки, ТекущаяДата; насколько я понимаю получает время из Windows. Вот мне и надо получить время с биоса - оно вроде не зависит от Windows?
#7
by Rizhij_Nikitos
Да нет же!!! Идея такая что нужен независимый или максимально недоступный для пользователя источник времени. Пишу игру на 1С, там фишка такая есть: добыча ресурсов в час. Так вот когда ты не в игре они тоже тикают и когда ты заходишь, расчитывается время твоего отсутствия, и добавляются ресурсы, все работает через ТекущаяДата; но это же очевидный баг. Вышел, перевел часы на 100 дней вперед, зашел и тут опа тебе куча ресурсов! Хоть свои часы пиши и в трей вешай)
#10
by H A D G E H O G s
Прочитать область памяти (не помню на глаз адрес). Вроде права ring0 нужны.
#15
by Rizhij_Nikitos
Игра как конфа идет, запуск игры - запуск документа, закрытие ее - закрытие документа. Закрыл документ - время в константу, открыл его - получили с ТекущейДаты; Вот тоже уже начал об этом думать, только с внешними приложениями никогда не работал в 1с. Посоветуйте книжку/статью или может у кого набросок похожего есть?
#16
by Rizhij_Nikitos
Не. Пишу аналог OGame (русск. ОГейм) — стратегическая космическая игра. Относится к классу многопользовательских браузерных веб-игр(с)Wiki Моя пока однопользовательская - реализую для одного человека все это дело. Многопользовательской будет врядли только если под 8.2 в веб интерфейсы перегонять. Делаю для себя потрениться в 1с да и вообще мозги размять. Если кому интересно могу дать .dt чего уже наделал)
#19
by tridog
&НаСервере Конечно нужен клиент-сервер, но публиковать файловую базу в вебе это такое звращение...
#25
by Rizhij_Nikitos
Как правило все что заканчивается на asm ни к чему хорошему не приводит)) Точнее приводит но очень извилистыми путями, связываться не охота. Опять же говорю делаю для себя а не для клиента и не сервера. Многопользовательский режим обдумывался пару раз, но пока бы однопользовательский закодить, потому что на каждое движение вылезает уже неплохое количество багов. Скорее всего буду получать время с сервера windows например.
#27
by Rizhij_Nikitos
Катит, просто тогда ты можешь блин поменять серверное время(время твоей машины), пока игрушка закрыта, потом зайти и тебе набежит куча ресов. Не хочу чтоб так было, но пока полностью удовлетворяющего решения не нашел.
#28
by Neg
А просто при завершении игры фиксировать время пользователя, а при открытии сравнивать с текущим и если было изменено тогда ну т.д.
#30
by smaharbA
reg add HKLMSYSTEMCurrentControlSetControlTimeZoneInformation /v realtimeisuniversal /t reg_dword /d 1 и спокойно выставляем разное время/дату в бивесе и виндузе
#33
by Torquader
Время можно в BIOS прописать через порты какое хочешь - это понятно. Только читать его оттуда тоже через порты придётся. P.S. в данном же случае пользователь время в BIOS поменяет - и это ему запретить нельзя, в отличие от изменения системного времени (пароль на BIOS снимается перемычкой, а материнские платы c DALLAS уже не выпускаются).
#35
by smaharbA
время биоса можно получить даже из адинес без асма (но не через порты, через них виндуз обманет)
#38
by Rizhij_Nikitos
Это процедура обслуживания таймера. Она используется для считывания и изменения внутреннего счетчика таймера. Хотя эту процедуру и называют процедурой текущих даты/времени, на самом деле это всего лишь счетчик прерываний таймера. Счетчик увеличивается на единицу при каждом прерывании, которое происходит примерно 18-21 раз в секунду. Вычисление и обновление времени дня и даты - это операция ДОС, которая использует результаты счетчика. Имеется две процедуры обслуживания таймера, вызывающиеся по прерыванию 26, шестнадцатиричное значение 1А, одна, с кодом 0, для считывания показаний таймера, а вторая, с кодом 1, для их установки. Значение счетчика таймера хранится в виде пары двухбайтовых чисел, использующихся, фактически, как одно четырехбайтовое. Эта процедура вносит лишь одно добавление в примитивную процедуру подсчета часов. Когда это происходит, счетчик сбрасывается и факт запоминается. При очередном запросе на считывание значения счетчика передается сообщение о том, что таймер сбрасывался. Это позволяет ДОС следить за временем дня и сменой дат не вычисляя их постоянно. Когда ДОС необходимо установить время дня, используется описанная процедура для получения значения счетчика и по нему вычисляется время; если будет получено сообщение о сбросе таймера, то ДОС изменит также и дату. Таким образом, ДОС выполняет все эти вычисления только тогда,когда требуется указать время, что упрощает функции процедуры обслуживания прерываний от таймера, которая должна выполняться 18 раз в секунду. Если к ДОС будет хотя бы один запрос времени за день, то проверить это, оставив Ваш компьютер включенным на 24 часа. К концу Вашей проверки время дня будет по прежнему правильным, а дата ошибочной). Если Вы будете сами считывать или устанавливать показания таймера с помощью этих процедур системы BIOS, это может помешать правильному отсчету времени и даты в ДОС. ДОС устанавливает значение счетчика таймера таким образом, как будто он был запущен в полночь, после чего ДОС полностью полагается на значение признака сброса таймера. Любая установка или считывание показаний таймера Вашими программами естественно окажет влияние на отсчет времени в ДОС. Если Ваши программы будут только считывать показания таймера, это может привести к перехвату сообщения о сбросе таймера, что нарушит порядок отсчета даты в ДОС. Теперь мы рассмотрели все процедуры системы BIOS-ПЗУ. Вы могли обратить внимание на два упущения в составе этих процедур. В то время как все устройства, подключаемые стандартным образом, имеют поддерживающие их служебные процедуры,совершенно не поддерживается игровой адаптер. Это происходит потому, что такая поддержка просто не нужна. Я могу только предполагать почему это произошло; одна из возможных причин может заключаться в том, что форма "ИБМ" не сочла этот адаптер достаточно важной составной частью системы, которой требуется какая-либо поддержка на уровне системы BIOS. Возможно, также что игровой адаптер был доставлен к системе на достаточно поздней стадии ее разработки и его поддержка не могла быть включена в систему BIOS, размещенную в ПЗУ. Еще одна недостающая часть системы BIOS - это набор процедур для обслуживания встроенного динамика. Почему они не были включены в систему - это для меня загадка. В следующем разделе мы рассмотрим работу динамика и то, как извлекать из него звуки под управлением программы.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Получить id и получить объект по id
- Как программно получить получить пароль пользователя в текущем сеансе работ
- Как получить значение периодического реквизита на конкретное время
- Как получить разность дат (Нужно получить количество дней)
- Как можно получить время создания документа при COM соединении из V8?
- Как получить ГУИД элемента по OLE, записать и получить по нему ссылку?
- Как получить только время в запросе из поля содержащего дату и время
В этой группе 1С
- Помогите с 1С: Консолидацией - загрузка-выгрузка в Excel
- Как получить текущую строку табличной части документа из формы обработки?
- Как в 8.2 неоперативно провести документ текущей датой
- 1С тормозит на терминальном сервере
- Возврат сотрудника в отпуск по уходу за ребенком 1С УПП
- 8.2 Как скрыть пункт меню ввода на основани в справочнике для определенных ролей?
- 8.2 ЗначениеВРеквизитФормы
- v8: БП 2.0.14 Ошибка при обмене БП 1.6 в БП 2.0
- Инвентаризация в продажных ценах на розничном складе (не НТТ)?
- Консоль запросов для 8.1
- Сервер 1С предприятия и ключ на разных машинах
- Работа с ftp в 1с 8 через прокси сервер
- Регистр накопления без минуса.
- УТ 11 - Демо конфигурация - Ошибка в документе Реализация товаров и услуг
- Выгрузка базы 1C v8.1 на сервере ubuntu
- Количество уровней справочника ограничено!
- как удалить верхнее основное меню 1с 7.7
- Синтаксис помощник 1С 8
- Битрикс: Обмен заказами. Есть вопросы.
- Как убрать значки свернуть, свернуть в окно и крестик верхнем правом углу 1С 7.7