AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte CORETEMP mit Shared Memory
Thema durchsuchen
Ansicht
Themen-Optionen

CORETEMP mit Shared Memory

Ein Thema von hathor · begonnen am 26. Mai 2008 · letzter Beitrag vom 13. Sep 2014
Antwort Antwort
hathor
(Gast)

n/a Beiträge
 
#1

AW: CORETEMP mit Shared Memory

  Alt 13. Sep 2014, 15:05
Die SHARED MEMORY-Struktur wurde vor einiger Zeit erweitert, weil in den CPUs mehr Funktionen enthalten sind, z. B. die Leistungsaufnahme.
Siehe:
http://www.alcpu.com/CoreTemp/developers.html

Download:
http://www.alcpu.com

Im Anhang sind EXE, Sourcecode und eine aktuelle CORETEMP-Version
- aber NUR die 64Bit-Version
- installiert werden muss nichts. Das Original enthält unnützes Zeugs...

Delphi-Quellcode:
unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls;

type
  TForm2 = class(TForm)
    Memo1: TMemo;
    Timer1: TTimer;
    Button1: TButton;
    procedure FormShow(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

// http://www.alcpu.com/CoreTemp/developers.html
type
  CORE_TEMP_SHARED_DATA_EX = packed record
    uiLoad: packed array [0 .. 255] of Cardinal;
    uiTjMax: packed array [0 .. 127] of Cardinal;
    uiCoreCnt: Cardinal;
    uiCPUCnt: Cardinal;
    fTemp: packed array [0 .. 255] of Single;
    fVID: Single;
    fCPUSpeed: Single;
    fFSBSpeed: Single;
    fMultipier: Single;
    sCPUName: packed array [0 .. 99] of AnsiChar;
    ucFahrenheit: ByteBool;
    ucDeltaToTjMax: ByteBool;
//new struct
    ucTdpSupported: ByteBool;
    ucPowerSupported: ByteBool;
    uiStructVersion: Cardinal;
    uiTdp: packed array [0 .. 127] of Cardinal;
    fPower: packed array [0 .. 127] of Single;
    fMultipliers: packed array [0 .. 255] of Single;
  end;

const
  CoreTempSharedAreaEx = 'CoreTempMappingObjectEx';

function fnGetCoreTempInfoEx(out DataEx: CORE_TEMP_SHARED_DATA_EX): Boolean;

implementation

{$R *.dfm}

function fnGetCoreTempInfoEx(out DataEx: CORE_TEMP_SHARED_DATA_EX): Boolean;
var
  HCoreTempSharedAreaEx: Cardinal;
  PCoreTempSharedAreaEx: Pointer;
begin
  Result := False;
  HCoreTempSharedAreaEx := OpenFileMapping(FILE_MAP_READ, True,
    CoreTempSharedAreaEx);
  if HCoreTempSharedAreaEx <> 0 then
    try
      PCoreTempSharedAreaEx := MapViewOfFile(HCoreTempSharedAreaEx, FILE_MAP_READ,
        0, 0, SizeOf(DataEx));
      if Assigned(PCoreTempSharedAreaEx) then
        try
          FillChar(DataEx, SizeOf(DataEx), 0);
          Move(PCoreTempSharedAreaEx^, DataEx, SizeOf(DataEx));
          Result := True;
        finally
          UnmapViewOfFile(PCoreTempSharedAreaEx);
        end;
    finally
      CloseHandle(HCoreTempSharedAreaEx);
    end;
end;

procedure MM(s:string); begin Form2.Memo1.Lines.Add(s);end;

procedure TForm2.Button1Click(Sender: TObject);
begin
Close;
end;

procedure TForm2.FormShow(Sender: TObject);
var
  DataEx: CORE_TEMP_SHARED_DATA_EX;
  CPU, Core, Index: Cardinal;
  Degree: Char;
  Temp : Single;
  fCPUSpeedR : Extended;
  YY1, YY2 : INTEGER;
begin
Memo1.Clear; MM(' ');
    if fnGetCoreTempInfoEx(DataEx) then
    begin
      MM(' Processor: ' + DataEx.sCPUName);
      MM(' CPUs : ' + IntToStr(DataEx.uiCPUCnt));
      MM(' TDP: ' + IntToStr(DataEx.uiTDP[0]) + ' Watt');
      MM(' Cores: ' + IntToStr(DataEx.uiCoreCnt));
      fCPUSpeedR:= ROUND(DataEx.fCPUSpeed / 100)*100;
      MM(' CPU: ' + FloatToStrF(fCPUSpeedR, ffFixed, 7, 0) + ' MHz');
      MM(' VID: ' + FloatToStrF(DataEx.fVID, ffFixed, 7, 2) + ' Volt');
      MM(' Power: ' + FloatToStrF(DataEx.fPower[0], ffFixed, 7, 1) +' Watt');

      CPU := 0;
      MM(' ');
        for Core := 0 to DataEx.uiCoreCnt - 1 do
        begin
          Index := (CPU * DataEx.uiCoreCnt) + Core;
          Temp := DataEx.fTemp[Index];
          MM(' CORE '+ IntToStr(Core)+' Temp: ' + FloatToStrF(Temp, ffFixed, 7, 0)+ ' °C');
        end;
      MM(' ');
        for Core := 0 to DataEx.uiCoreCnt - 1 do
        begin
          Index := (CPU * DataEx.uiCoreCnt) + Core;
          Temp := DataEx.fTemp[Index];
          MM(' CORE '+ IntToStr(Core)+' Load: ' + IntToStr(DataEx.uiLoad[Index]) + ' %');
        end;
    end;
    Button1.SetFocus;
end;

end.
Miniaturansicht angehängter Grafiken
coretemp-demo.jpg  
Angehängte Dateien
Dateityp: zip Core Temp_1.0RC6.zip (1,04 MB, 27x aufgerufen)
Dateityp: zip CORETEMP-140913.zip (705,2 KB, 27x aufgerufen)

Geändert von hathor (13. Sep 2014 um 15:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: CORETEMP mit Shared Memory

  Alt 13. Sep 2014, 16:51
Bei mir zeigt dein Programm leider gar nichts an unter Windows 7. Auch wenn ich es als Admin starte nicht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#3

AW: CORETEMP mit Shared Memory

  Alt 13. Sep 2014, 17:28
Core Temp.exe läuft? Siehe Task Manager.
Denn das Programm füttert das SHARED MEMORY mit Daten...

Bei mir läuft es unter WIN8.0

Geändert von hathor (13. Sep 2014 um 17:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: CORETEMP mit Shared Memory

  Alt 13. Sep 2014, 17:42
Ich sehe das Fenster. Es wird nur nichts angezeigt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#5

AW: CORETEMP mit Shared Memory

  Alt 13. Sep 2014, 18:03
Welche Core Temp.exe-Version?
Ältere (0.99 und älter) haben diese Erweiterung noch nicht.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz