Data z biosa - odniesienie się do funkcji

0

Witam!
Znalazłem na torry.net bardzo mi potrzebną funkcję pobierania daty z BIOS'a tylko nie potrafię się do niej odnieść :( np. do Edita.

Oto funkcja:

 function GetBiosDate1: String;
var
   Buffer : Array[0..8] Of Char;
   N : DWORD;
begin
   ReadProcessMemory(GetCurrentProcess,
   Ptr($FFFF5),
   @Buffer,
   8,
   N);
   Buffer[8] := #0;
   result := StrPas(Buffer)
end;

function GetBiosDate2: String;
begin
   result := string(pchar(ptr($FFFF5)));
end;

Napisałem coś takiego:

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=GetBiosDate1;
end;

No ale to mi czyści Edita zamiast pokazywac datę :)
Czy może mi ktoś pomóc z wyświetleniem daty? Dzięki z góry!!

0

function GetBiosDate1: string;

czyli:

begin
GetBiosDate1(Edit1.Text);
end;
0

Lofix przy tym występuje mi błąd :(
[Error] Unit1.pas(46): Too many actual parameters

0

a:

ShowMessage(GetBiosDate1);

?

0

Pokazało się okienko z małym dziwnym kwadracikiem, ale patrząc na kod nie doczytałem że to jest pod win 95/98 :( Ja używam XP.

Tak, teraz szukać odpowiednika pobierania daty z Biosa pod XP trzeba :((

0

A jak weźmiesz datę z systemu, to nie będzie ona taka sama, jak ta z biosu?

0

http://4programmers.net/article.php?id=557
wjedź do funkcji debugerem i zobacz, co zwraca; jeśli gdzieś pojawi się znak #0, to tekst ze stringa zostanie w tym miejscu ucięty przy przepisywaniu jego zawartości do innej zmiennej.

0

Thenkles ja nie chcę daty z systemu tylko z biosu. Chyba że mi wymyslisz system, że pomimo manipulacji usera datą systemową, w moim programie ona będzie cały czas teraźniejsza. :)

0

A to nie jest tak, że jak zmieniasz datę w systemie, to zmienia się także w biosie?

0

No nie wiem. Generalnie chodzi mi o to aby napisać kodzik, który pobierałby datę - moze być już z systemu, ale gdy user będzie ją modyfikował w windowsie to w programie moim ma się nie zmieniać. Zmieniać ma się tylko kiedy musi, czyli na przełomach dób (23:59/00:00). I TYLKO WTEDY.

0
thenkles napisał(a)

A to nie jest tak, że jak zmieniasz datę w systemie, to zmienia się także w biosie?

Tak jest, zmienisz datę w systemie zmienisz w biosie. To jest jeden z powodów, dlaczego tylko w jednym systemie powinna być włączona opcja automatycznej zmiany czasu. Więc po co ją czytać z biosu w Windowsie?

0

To jest ta sama data i czas.

Pobieraj sobie czas z serwerów w internecie.

0

Pobieraj datę z Internetu, a potem porównuj z aktualną i ew. zmieniaj.

0

No teraz już wiem, że tu i tu się zarazem zmienia data. A co do poboru daty z internetu to nie chcę tego robić, bo nie każdy ma internet, a mój program, nie będzie tylko dla mnie, ale też dla ludzi, którzy nie mają dostępu do internetu. Za to wynalazłem inny sposób. Jak go wykonam to moze napiszę o tym arta. :)
Pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1