Krótko,
Jak to zrobić, żeby odczytać te wartości z płyty głównej z poziomu Delphi ??
//Proszę odpowiadać na temat lub w ogóle - wszelkie pogawędki będą kasowane - m.M
Krótko,
Jak to zrobić, żeby odczytać te wartości z płyty głównej z poziomu Delphi ??
//Proszę odpowiadać na temat lub w ogóle - wszelkie pogawędki będą kasowane - m.M
ZlPortio (komponent do odczytu BIOSu pod winda)
musisz tylko miec mape zeby odczytac dobre wartosci)
w jakims archiwalnym CHIPie byl o tym artykul
Od razu uprzedzam: Nawet nie próbowałem tego robić bo mój komp nie ma termometru.
Ale wiem jak to wygląda i że można to odcztać w BIOS... Więc chyba jest gdzies w pamięci. Poszukaj może znajdziesz gdzieś informację gdzie, a wtedy możesz np. posłużyć się czymś takim:
[code]int a=0xFE061;//W tym wypadku jest to chyba nr. seryjny plyty glownej.
char M[255];
strcpy(M, (char*)a);
Label1->Caption = M;[/code]
i zmienić zmienną "a" na dany adres w pamięci
Sam chcialbym napisac taki program, co to sa te mapy? :-/
Poza tym ten kod (od krecika) nie zadziała pod żadną nt-podobną windą... tam nie da się tak po prostu odczytać zawartości jakiejś komórki pamięci. Niestety nie dokopałem się jak to zrobić pod tymi systemami i w C++B, nie używająć magicznych wstawek w asm-ie... jak ktoś wie to proszę o dopisek ...
W ASMie też się najpewniej nie uda...
Ale pozostaje WinApi (MOŻE) i sterowniki...
Zauważyłem że jest możliwość odczytu pod windą np xp bo na takiej sprawdzałem, ale z poziomu programu napisanego pod dosa i uruchamianego z konsoli... może bys ię dało jakoś oszukać windę że prog napisany w BCB jest dosowy... jak kogoś interesuje to dam kod przepisany z książki Taylora...
Witam,
Pomęczyłem troszke ludzi z Solteka, bo tej firmy mam płyte, i przysłali mi opis techniczny mojej płyty :-). 2 MB textu w PFD. Pogubiłem się przeglądając to, ale zauważyłem że sa podane jakieś adresy, offsety itd.
Nie udało się wyciągnąc od nich kodów ich firmowego programu :-( niestety. Teraz tylko zrozumieś tego "manuala" i program napisać :-D
Jak ktoś chce moge podasłać tego PDF'a.
--- odczyt szybkości procesora ---
function TForm1.GetCpuSpeed: Extended;
var
t: DWORD;
mhi, mlo, nhi, nlo: DWORD;
t0, t1, chi, clo, shr32: Comp;
begin
shr32 := 65536;
shr32 := shr32 * 65536;
t := GetTickCount;
while t = GetTickCount do begin end;
asm
DB 0FH
DB 031H
mov mhi,edx
mov mlo,eax
end;
while GetTickCount < (t + 1000) do begin end;
asm
DB 0FH
DB 031H
mov nhi,edx
mov nlo,eax
end;
chi := mhi; if mhi < 0 then chi := chi + shr32;
clo := mlo; if mlo < 0 then clo := clo + shr32;
t0 := chi * shr32 + clo;
chi := nhi; if nhi < 0 then chi := chi + shr32;
clo := nlo; if nlo < 0 then clo := clo + shr32;
t1 := chi * shr32 + clo;
Result := (t1 - t0) / 1E6;
end;
procedure Button1.onClick;
begin
label1.Caption := FloatToStr(GetCpuSpeed) + 'mhz';
end;
jeżeli chodzi o temperature to pozostawiam tylko jedną metodę:
procedure TForm1.Button1Click(Sender: TObject);
var
List: TStringList;
begin
List := TStringList.Create;
try
memo1.Lines.LoadFromFile('c:\hmonitor\log\EventLog.csv');{lokalizacja, np.: c:\hmonitor\log\EventLog.csv }
text := memo1.Lines.Text;
Extract(';', text, List);
Label1.Caption := List[2] + '*C oraz ' + List[3] + '*C';
finally
List.Free;
end;
end;
powinno działać
ShowMessage('Niech Delphi będzie z Tobą');