![]() |
Tipp 0055
|
Bios-Daten auslesen
|
 |
|
Autor/Einsender: Datum: |
|
Detlev Schubert 11.05.2001 |
|
Entwicklungsumgebung: |
|
VB 5/6 |
|
|
Es wird immer wieder behauptet, dass es mit VB nicht möglich ist, auf den Speicher zuzugreifen.
Dass dies jedoch sehr wohl ab VB 5 und sogar recht komfortabel möglich ist, zeigt dieser Tipp
mittels der nicht dokumentierten Funktion GetMem1 aus der Laufzeitbibliothek.
Mit dieser Funktion können einzelne Bytes aus dem Speicher, und somit auch aus dem
BIOS-Speicherbereich gelesen werden. Leider halten sich nicht alle BIOS-Hersteller an
vorgegebene Standards, so dass bei einigen und vor allem älteren BIOS-Varianten ein Auslesen nicht
ohne weiteres möglich ist.
|
|
|
Die Funktion GetMem1 funktioniert NUR bei den Betriebssystemen
Windows 95/98 und ME. Da die auf einem NT-Kern basierenden
Betriebssysteme keine direkten Speicherzugriffe
zulassen, führt der Einsatz dieser Funktion u.U. zu einem sofortigen Systemabsturz.
|
Alle nicht gespeicherten Daten gehen damit verloren!!!
|
|
|
Option Explicit
Private Declare Sub GetMem1 Lib "msvbvm60.dll" (ByVal _
MemAddress As Long, var As Byte)
Private Function GetBIOSDate(MemAddr As Long, _
laenge As Integer) As String
Dim p As Byte, sBios As String
Dim i As Integer
For i = 0 To laenge
Call GetMem1(MemAddr + i, p)
sBios = sBios & Chr$(p)
Next i
GetBIOSDate = sBios
End Function
Private Sub Command1_Click(Index As Integer)
Select Case Index
Case 1
Label1(1).Caption = GetBIOSDate(&HFE061, 30)
Label1(2).Caption = Trim$(GetBIOSDate(&HFE091, 43))
Label1(3).Caption = GetBIOSDate(&HFEC71, 45)
Label1(5).Caption = GetBIOSDate(&HFFFF5, 7)
If InStr(1, Label1(1).Caption, "BIOS") <= 1 Then
Label1(1).Caption = GetBIOSDate(&HFF400, 12)
Label1(2).Caption = GetBIOSDate(&HFF450, 31)
Label1(3).Caption = GetBIOSDate(&HFF478, 39)
If InStr(1, Label1(1).Caption, "BIOS") <= 1 Then
Label1(1).Caption = "nicht zu ermitteln"
Label1(2).Caption = "nicht zu ermitteln"
Label1(3).Caption = "nicht zu ermitteln"
End If
End If
Case Else
Unload Me
End
End Select
End Sub
|
|
|
|
|
Windows-Version |
95 |
 |
|
98/SE |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
VB-Version |
VBA 5 |
 |
|
VBA 6 |
 |
|
VB 4/16 |
 |
|
VB 4/32 |
 |
|
VB 5 |
 |
|
VB 6 |
 |
|
|
|
Download (2,3 kB)
|
Downloads bisher: [ 4486 ]
|
|
|