Hallo.
Ich habe im Internet ein Programm gefunden, welches die Daten von SpeedFan auslesen kann.
Leider ist es in VB6 geschrieben...
Könnte mir jemand die Codes in VB.NET (für VB 2005 Express) umwandeln???
Oder ein Codebeispiel für VB.NEt geben welches die daten von Speedfan ausliest??
Danke schonmal...
Die Codes...
Form1.frm
Und Speedfan.bas
Ich habe im Internet ein Programm gefunden, welches die Daten von SpeedFan auslesen kann.
Leider ist es in VB6 geschrieben...
Könnte mir jemand die Codes in VB.NET (für VB 2005 Express) umwandeln???
Oder ein Codebeispiel für VB.NEt geben welches die daten von Speedfan ausliest??
Danke schonmal...
Die Codes...
Form1.frm
Code:
Begin VB.Form Form1 Caption = "SpeedFan auslesen" ClientHeight = 2430 ClientLeft = 60 ClientTop = 345 ClientWidth = 4875 LinkTopic = "Form1" ScaleHeight = 2430 ScaleWidth = 4875 StartUpPosition = 3 'Windows-Standard Begin VB.TextBox Text4 Height = 2355 Left = 3300 MultiLine = -1 'True TabIndex = 2 Top = 60 Width = 1575 End Begin VB.TextBox Text3 Height = 2355 Left = 1680 MultiLine = -1 'True TabIndex = 1 Top = 60 Width = 1575 End Begin VB.TextBox Text2 Height = 2355 Left = 60 MultiLine = -1 'True TabIndex = 0 Top = 60 Width = 1575 End Begin VB.Timer Timer1 Interval = 500 Left = 4920 Top = 60 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Private Sub Timer1_Timer() Dim temp1, temp2 As Long Dim blah As SpeedFan_Data blah = SpeedFan_GetStatus temp1 = Text2.SelStart: temp2 = Text2.SelLength Text2.Text = "" For x = 1 To blah.Temps Text2.Text = Text2.Text & "Temp" & x & ": " & blah.Temp(x - 1) & "°C" & vbNewLine Next Text2.SelStart = temp1: Text2.SelLength = temp2 temp1 = Text3.SelStart: temp2 = Text3.SelLength Text3.Text = "" For x = 1 To blah.Fans Text3.Text = Text3.Text & "Fan" & x & ": " & blah.Fan(x - 1) & "RPM" & vbNewLine Next Text3.SelStart = temp1: Text3.SelLength = temp2 temp1 = Text4.SelStart: temp2 = Text4.SelLength Text4.Text = "" Text4.Text = Text4.Text & "Vcore: " & blah.Volt(0) & "V" & vbNewLine Text4.Text = Text4.Text & "+12V: " & blah.Volt(1) & "V" & vbNewLine Text4.Text = Text4.Text & "3,3V: " & blah.Volt(2) & "V" & vbNewLine Text4.Text = Text4.Text & "+5V: " & blah.Volt(3) & "V" & vbNewLine Text4.Text = Text4.Text & "Vin2: " & blah.Volt(4) & "V" & vbNewLine Text4.Text = Text4.Text & "5Vsb: " & blah.Volt(5) & "V" & vbNewLine Text4.Text = Text4.Text & "Vbat: " & blah.Volt(6) & "V" & vbNewLine Text4.SelStart = temp1: Text4.SelLength = temp2 End Sub
Code:
Attribute VB_Name = "SpeedFan" Option Explicit Private Declare Function OpenFileMapping Lib "kernel32" Alias "OpenFileMappingA" (ByVal dwDesiredAccess As Long, _ ByVal bInheritHandle As Long, ByVal lpName As String) As Long Private Declare Function MapViewOfFile Lib "kernel32" (ByVal hFileMappingObject As Long, ByVal dwDesiredAccess As Long, _ ByVal dwFileOffsetHigh As Long, ByVal dwFileOffsetLow As Long, ByVal dwNumberOfBytesToMap As Long) As Long Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long) Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Declare Function UnmapViewOfFile Lib "kernel32" (ByVal lpBaseAddress As Long) As Long Private Const FILE_MAP_READ As Long = &H4 Private Const FILE_MAP_WRITE As Long = &H2 Private Type SF_Raw_MemMap Unknown(5) As Integer 'unbekanntes Tag NumTemps As Integer 'Anzahl der Temperaturen NumFans As Integer 'Anzahl der Lüfter NumVolts As Integer 'Anzahl der Spannungen Temps(63) As Integer 'Werte der Temperaturen Fans(63) As Integer 'Drehzahl der Lüfter Volts(63) As Integer 'Werte der Spannungen End Type Public Type SpeedFan_Data Temps As Long 's.o. Fans As Long Volts As Long Temp(32) As Double Fan(32) As Long Volt(32) As Double End Type Public Function SpeedFan_GetStatus() As SpeedFan_Data Dim MyAreaPtr As Long Dim MyAreaH As Long Dim mMyArea As SF_Raw_MemMap Dim RetVal As SpeedFan_Data Dim x As Long MyAreaH = OpenFileMapping(FILE_MAP_READ, 0, "SFSharedMemory_ALM") 'Adresse der Memorymap herausfinden If MyAreaH = 0 Then Exit Function 'keine Area da - weg hier! MyAreaPtr = MapViewOfFile(MyAreaH, FILE_MAP_READ, 0, 0, 0) 'Pointer herausfinden CopyMemory VarPtr(mMyArea), MyAreaPtr, Len(mMyArea) 'und lesen! RetVal.Temps = mMyArea.NumTemps RetVal.Volts = mMyArea.NumVolts RetVal.Fans = mMyArea.NumFans For x = 0 To 32 Step 2 RetVal.Temp(x / 2) = mMyArea.Temps(x) / 100 RetVal.Fan(x / 2) = mMyArea.Fans(x) RetVal.Volt(x / 2) = mMyArea.Volts(x) / 100 Next CloseHandle MyAreaH UnmapViewOfFile MyAreaPtr SpeedFan_GetStatus = RetVal End Function