Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Daten von SpeedFan nach freeBASIC

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1875
Wohnort: D59192

BeitragVerfasst am: 04.11.2005, 12:00    Titel: Daten von SpeedFan nach freeBASIC Antworten mit Zitat

Edit/
Läuft nur auf PC´s deren BIOS dieTemperatur, Upm und Spannungen auch anzeigen kann!
Hi,
eigentlich sollte das mal wieder ein ganz anderes Programm werden,
aber dann kam das dabei raus. grinsen
Code:
'11/04/2005  - Volta - ;erstellt mit FreeBasic  Version 015b win32 -test-
'So lassen sich die Daten von SpeedFan in freeBASIC-Programme einlesen
'mit SpeedFan  4.26  (http://www.almico.com/speedfan.php) getestet.
'Läuft nur auf PC´s deren BIOS die Temperatur, Upm und Spannungen auch anzeigen kann!
Option Explicit
#include "windows.bi"

'SpeedFan_FileMapp "SFSharedMemory_ALM"
'  version as ushort 'Hi 4 ;Lo 26
'  flags as ushort
'  MemSize As Integer '=402 Ok
'  Handle As Integer '???
'  xTemps As uShort 'Anzahl der Temperaturen
'  xFans  As uShort 'Anzahl der Lüfter
'  xVolts As uShort 'Anzahl der Spannungen
'  Temps (32) As Integer 'LoWord = Werte der Temperaturen *100
'  Fans  (32) As Integer 'LoWord = Drehzahl der Lüfter
'  Volts (32) As Integer 'LoWord = Werte der Spannungen *100
Declare Function SpeedFanStatus() As Integer

Type SpeedFanDaten
  xTemp  As UShort
  xFan   As UShort
  xVolta As UShort
  Temp (31) As Single
  Fan  (31) As UShort
  Volta(31) As Single
End Type
Dim Shared temp As SpeedFanDaten

Function SpeedFanStatus() As Integer
 Dim Mappi_Ptr As short Ptr
 Dim Mappi_H As Integer Ptr
 Dim n As Integer, m As Short
 Function = 0

'Öffnen enes bereits erzeugten Dateiabbildungsobjektes mit Hilfe von OpenFileMapping.
 Mappi_H = OpenFileMapping(4, 0, "SFSharedMemory_ALM") 'Handle der FileMap
'Die Funktion OpenFileMapping liefern im Erfolgsfall ein Handle zurück, das ungleich NULL ist,
'und mit dem schließlich ein Zeiger auf die Abbildung der Daten im Prozeßaddressraum ermittelt wird.
 If Mappi_H = 0 Then Exit Function 'keine FileMap - dann raus!

'Die Funktion MapViewOfFile liefert einen Zeiger zurück, mit dessen Hilfe der
 Mappi_Ptr = MapViewOfFile(Mappi_H, 4, 0, 0, 0) 'Pointer holen
'Zugriff auf die Daten wie auf einen ganz normalen Speicherbereich erfolgen kann.
 'gleich nach SpeedFanDaten wandeln
 temp.xTemp =  Mappi_Ptr[6]
 temp.xFan  =  Mappi_Ptr[7]
 temp.xVolta=  Mappi_Ptr[8]
 For n = 0 To 31
   temp.Temp(n) = Mappi_Ptr[n*2 +  9] / 100
   temp.Fan (n) = Mappi_Ptr[n*2 + 73]
   m = Mappi_Ptr[n*2 + 137]' die Spannungen sind teilweise negativ
   temp.Volta(n)= m / 100
 Next

'Selbstverständlich müssen alle reservierten Handles / Zeiger wieder freigegeben werden,
'sobald die speicherbasierte Daten nicht mehr benötigt werden.
'Dies geschieht im Fall des Filemapping-Handles mit der Funktion CloseHandle
 CloseHandle Mappi_H
'und im Fall des Zeigers mit der Funktion UnmapViewOfFile.
 UnmapViewOfFile Mappi_Ptr
 Function = -1
End Function


Dim i As Integer
If SpeedFanStatus Then
 Print temp.xTemp; " Temperaturen ";
 For i = 0 To temp.xTemp -1
   Print temp.Temp(i);"C ";
 Next
 Print
 Print temp.xFan; " Luefter ";
 For i = 0 To temp.xFan -1
   Print temp.Fan(i);"Upm ";
 Next
 Print
 Print temp.xVolta; " Spannungen ";
 For i = 0 To temp.xVolta -1
   Print temp.Volta(i);"V ";
 Next
 Print
Else
 Print "SpeedFan nicht gefunden."
End If
sleep

Hier noch einmal der Link auf SpeedFan http://www.almico.com/speedfan.php ohne das Programm geht es natürlich nicht.
Probleme mit den Werten:
manchmal hat meine Festplatte -8°C durchgeknallt
die -12V und -5V des Netzteils schwanken angeblich zwischen -3 und -8V.
Welche Erfahrungen habt/macht Ihr mit dem Programm?
Gruß
Volta
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz