Announcement

Collapse
No announcement yet.

VB6 in VB.NET

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • VB6 in VB.NET

    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

    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
    Und Speedfan.bas

    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
    Die Sonne geht auf - Die Sonne geht unter - ich bin wieder drauf, doch irgendwann komm ich runter
Working...
X