Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как отловить системное время? То, которое в BIOS... 
V
    Опции темы
Kesh
Дата 4.2.2006, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: нет
Всего: 54



У меня такой вопрос... Как мне отловить системное время, не то, которое в Винде, а то, которое в БИОСЕ?
Добавлено @ 16:05
Не дата Биоса, а текущее время...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
DemoCode
Дата 4.2.2006, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 1
Всего: 41



Пример из delphiworld

Код

unit BiosDate;

interface

function GetBiosDate: string;

implementation

function SegOfsToLinear(Segment, Offset: Word): Integer;
begin
  result := (Segment shl 4) or Offset;
end;

function GetBiosDate: string;
begin
  result := string(PChar(Ptr(SegOfsToLinear($F000, $FFF5))));
end;

end.

А время - надо просто узнать адрес его и поменять здесь.

Это сообщение отредактировал(а) DemoCode - 4.2.2006, 16:18


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
Kesh
Дата 4.2.2006, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: нет
Всего: 54



Кто знает, как узнать?


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
DemoCode
Дата 4.2.2006, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 1
Всего: 41



Код

function GetBiosTime:Word; assembler;
 asm    mov    es,[Seg0040]
    mov    ax,es:[6Ch]    {Ticks}
    mov    dx,60
    mul    dx        {in DX die Minuten}
    mov    cx,dx
    mov    ax,es:[6Eh]    {Stunden}
    mov    dx,100
    mul    dx
    add    ax,cx
 end;



--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
Kesh
Дата 4.2.2006, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: нет
Всего: 54



DemoCode Delphi ругается на [Seg0040]


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Snowy
Дата 4.2.2006, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 30
Всего: 484



Цитата(Kesh @ 4.2.2006, 16:04 Найти цитируемый пост)
Как мне отловить системное время, не то, которое в Винде, а то, которое в БИОСЕ

А разве они отличаются???
PM MAIL   Вверх
Kesh
Дата 4.2.2006, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: нет
Всего: 54



Snowy Т.е. если изменить время в Винде - оно изменится и в БИОСЕ???
Добавлено @ 16:50
DemoCode Под хрюшей это не работает... smile
Не удается получить доступ к памяти...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
DemoCode
Дата 4.2.2006, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 1
Всего: 41



Код

const Seg0040 = $40;

Только этот код работал у меня на паскале. Delphi под рукой нет проверить не могу.


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
Snowy
Дата 4.2.2006, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 30
Всего: 484



Цитата(Kesh @ 4.2.2006, 16:40 Найти цитируемый пост)
Snowy Т.е. если изменить время в Винде - оно изменится и в БИОСЕ???

По крайней мере так оно всегда и было во всех версиях винды.
Может я могу ошибаться с моментом, но результат именно такой - изменяя время в винде, оно меняется на уровне всей системы. То есть и в биосе тоже.
PM MAIL   Вверх
Kesh
Дата 4.2.2006, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: нет
Всего: 54



Блин, ладно... Халявы не вышло... smile
Всем спасибо за помощь...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Snowy
Дата 4.2.2006, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 30
Всего: 484



Смена времени легко проверяется под Win98.
Запускаем DOS программу, которая показывает системное время.
Меняем время в системе.
DOS программы берут время не из винды, а из DOS, который берет его из биоса.

Если бы была разница, то легко бы вычислялась смена времени.
Но...
PM MAIL   Вверх
DemoCode
Дата 4.2.2006, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 1
Всего: 41



По-крайней мере дата может отличаться точно (проверено на собственной шкуре).


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
DemoCode
Дата 4.2.2006, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 1
Всего: 41



Цитата

GetSystemTime. Возвращает истинное время. То есть функция думает, что оно истинное, а в действительности - производное от системного счетчика, инкрементируемого каждые 10 мс или 15 мс за вычетом "съеденных" тиков и врожденной неравномерности хода PIT и APIC-таймеров. Периодически синхронизует себя с часами реального времени, а если запущена специальная Интернет-служба, то еще и с атомными часами, т.е. системное время продвигается траекторией пьяного гонщика, едущего по пересеченной местности. Для измерений временных промежутков непригодна.


Так что, если 10-15 мс некритично, можно ей пользоваться.


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
Yanis
Дата 5.2.2006, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 13
Всего: 111



Цитата(Snowy @ 4.2.2006, 17:00 Найти цитируемый пост)

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

smile


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Romikgy
Дата 6.2.2006, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 13
Всего: 146



Kesh Если надо у меня есть исходник , с работой под НТ с бивесом (только я юзал стороний компонент и драйвер доступа к портам)


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.3886 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.