Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Prozessor herausfinden, neuere Version ? (https://www.delphipraxis.net/164956-prozessor-herausfinden-neuere-version.html)

hoika 7. Dez 2011 15:16

Prozessor herausfinden, neuere Version ?
 
Halo,

unter

http://www.delphi-library.de/topic_d...n_16459,0.html

gibt es Code.
Der ist aber leider etwas alt.

Hat jemand einen aktuelleren Code ?

Danke


Heiko

Uwe Raabe 7. Dez 2011 15:32

AW: Prozessor herausfinden, neuere Version ?
 
Ich weiß nicht, ob dir das ausreicht, aber GetSystemInfo liefert wProcessorArchitecture, wProcessorLevel und wProcessorRevision.

Luckie 7. Dez 2011 15:36

AW: Prozessor herausfinden, neuere Version ?
 
Und man kann es aus der Registry auslesen. Jedenfalls das Anpassen an jede neue CPU ist letztendlich auch nicht zielführend, denn wo soll das enden?

Bernhard Geyer 7. Dez 2011 15:39

AW: Prozessor herausfinden, neuere Version ?
 
Wie wäre es das Windows zu überlassen und per WMI das einfach abzufragen?

hoika 7. Dez 2011 15:49

AW: Prozessor herausfinden, neuere Version ?
 
Hallo,

das soll bloss eine kleine Prozedur werden,
ich will da nicht so viel Zeit investieren (soll max. einen Tag dauern),
WMI klingt interessant, aber damit kenne ich mich nicht aus ... ;(

Registry klingt einfach, wo finde ich denn die Info ?


Heiko

Luckie 7. Dez 2011 15:55

AW: Prozessor herausfinden, neuere Version ?
 
Google? Bei Google suchencpu info windows registry

Sir Rufo 7. Dez 2011 16:00

AW: Prozessor herausfinden, neuere Version ?
 
Zitat:

Zitat von hoika (Beitrag 1140098)
ich will da nicht so viel Zeit investieren (soll max. einen Tag dauern),
WMI klingt interessant, aber damit kenne ich mich nicht aus ... ;(

ich sach nur WMI Delphi Code Creator
Das ist Click and Code mit gleichzeitiger Erfolgskontrolle.

Ich tippe mal auf 30 Minuten (zusammenklicken, überprüfen, Code in eigenes Projekt übertragen, dokumentieren, freuen, den Kollegen mitteilen)

Steku 7. Dez 2011 16:02

AW: Prozessor herausfinden, neuere Version ?
 
... oder wegen WMI hier schauen...

Gutes Tool was den benötigten WMI Code generiert. Code / Ausgabe
ist zwar für Konsolen-Anwendung, umstellen aber einfach...

http://theroadtodelphi.wordpress.com...-code-creator/

Gruß, Steku

Edit: OK, zu spät... ;-)

Sir Rufo 7. Dez 2011 16:10

AW: Prozessor herausfinden, neuere Version ?
 
Zitat:

Zitat von Steku (Beitrag 1140104)
Edit: OK, zu spät... ;-)

:cheer:

Sowas bekommt man dabei raus (nur die procedure):
Delphi-Quellcode:
uses
  SysUtils,
  ActiveX,
  ComObj,
  Variants;

procedure GetCIM_ProcessorInfo;
const
  WbemUser           ='';
  WbemPassword       ='';
  WbemComputer       ='localhost';
  wbemFlagForwardOnly = $00000020;
var
  FSWbemLocator : OLEVariant;
  FWMIService  : OLEVariant;
  FWbemObjectSet: OLEVariant;
  FWbemObject  : OLEVariant;
  oEnum        : IEnumvariant;
  iValue       : LongWord;
begin;
  FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
  FWMIService  := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword);
  FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM CIM_Processor','WQL',wbemFlagForwardOnly);
  oEnum        := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
  while oEnum.Next(1, FWbemObject, iValue) = 0 do
  begin
    Writeln(Format('AddressWidth                  %d',[Integer(FWbemObject.AddressWidth)]));// Uint16
    Writeln(Format('Availability                  %d',[Integer(FWbemObject.Availability)]));// Uint16
    Writeln(Format('Caption                       %s',[String(FWbemObject.Caption)]));// String
    Writeln(Format('ConfigManagerErrorCode        %d',[Integer(FWbemObject.ConfigManagerErrorCode)]));// Uint32
    Writeln(Format('ConfigManagerUserConfig       %s',[String(FWbemObject.ConfigManagerUserConfig)]));// Boolean
    Writeln(Format('CreationClassName             %s',[String(FWbemObject.CreationClassName)]));// String
    Writeln(Format('CurrentClockSpeed             %d',[Integer(FWbemObject.CurrentClockSpeed)]));// Uint32
    Writeln(Format('DataWidth                     %d',[Integer(FWbemObject.DataWidth)]));// Uint16
    Writeln(Format('Description                   %s',[String(FWbemObject.Description)]));// String
    Writeln(Format('DeviceID                      %s',[String(FWbemObject.DeviceID)]));// String
    Writeln(Format('ErrorCleared                  %s',[String(FWbemObject.ErrorCleared)]));// Boolean
    Writeln(Format('ErrorDescription              %s',[String(FWbemObject.ErrorDescription)]));// String
    Writeln(Format('Family                        %d',[Integer(FWbemObject.Family)]));// Uint16
    Writeln(Format('InstallDate                   %s',[String(FWbemObject.InstallDate)]));// Datetime
    Writeln(Format('LastErrorCode                 %d',[Integer(FWbemObject.LastErrorCode)]));// Uint32
    Writeln(Format('LoadPercentage                %d',[Integer(FWbemObject.LoadPercentage)]));// Uint16
    Writeln(Format('MaxClockSpeed                 %d',[Integer(FWbemObject.MaxClockSpeed)]));// Uint32
    Writeln(Format('Name                          %s',[String(FWbemObject.Name)]));// String
    Writeln(Format('OtherFamilyDescription        %s',[String(FWbemObject.OtherFamilyDescription)]));// String
    Writeln(Format('PNPDeviceID                   %s',[String(FWbemObject.PNPDeviceID)]));// String
    Writeln(Format('PowerManagementCapabilities   %d',[Integer(FWbemObject.PowerManagementCapabilities)]));// Uint16
    Writeln(Format('PowerManagementSupported      %s',[String(FWbemObject.PowerManagementSupported)]));// Boolean
    Writeln(Format('Role                          %s',[String(FWbemObject.Role)]));// String
    Writeln(Format('Status                        %s',[String(FWbemObject.Status)]));// String
    Writeln(Format('StatusInfo                    %d',[Integer(FWbemObject.StatusInfo)]));// Uint16
    Writeln(Format('Stepping                      %s',[String(FWbemObject.Stepping)]));// String
    Writeln(Format('SystemCreationClassName       %s',[String(FWbemObject.SystemCreationClassName)]));// String
    Writeln(Format('SystemName                    %s',[String(FWbemObject.SystemName)]));// String
    Writeln(Format('UniqueId                      %s',[String(FWbemObject.UniqueId)]));// String
    Writeln(Format('UpgradeMethod                 %d',[Integer(FWbemObject.UpgradeMethod)]));// Uint16
      
    Writeln('');
    FWbemObject:=Unassigned;
  end;
end;

Bummi 7. Dez 2011 17:38

AW: Prozessor herausfinden, neuere Version ?
 
Auf meinem Mininotebook Win7 ist o.g. so lauffähig .....
der Rest sind NULL Werte

Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}

uses

  SysUtils,
  ActiveX,
  ComObj,
  Variants;

procedure GetCIM_ProcessorInfo;
const
  WbemUser ='';
  WbemPassword ='';
  WbemComputer ='localhost';
  wbemFlagForwardOnly = $00000020;
var
  FSWbemLocator : OLEVariant;
  FWMIService : OLEVariant;
  FWbemObjectSet: OLEVariant;
  FWbemObject : OLEVariant;
  oEnum : IEnumvariant;
  iValue : LongWord;
begin;
  FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
  FWMIService := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword);
  FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM CIM_Processor','WQL',wbemFlagForwardOnly);
  oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
  while oEnum.Next(1, FWbemObject, iValue) = 0 do
  begin
    Writeln(Format('AddressWidth %d',[Integer(FWbemObject.AddressWidth)]));// Uint16
    Writeln(Format('Availability %d',[Integer(FWbemObject.Availability)]));// Uint16
    Writeln(Format('Caption %s',[String(FWbemObject.Caption)]));// String
//    Writeln(Format('ConfigManagerErrorCode %d',[Integer(FWbemObject.ConfigManagerErrorCode)]));// Uint32
//    Writeln(Format('ConfigManagerUserConfig %s',[String(FWbemObject.ConfigManagerUserConfig)]));// Boolean
    Writeln(Format('CreationClassName %s',[String(FWbemObject.CreationClassName)]));// String
    Writeln(Format('CurrentClockSpeed %d',[Integer(FWbemObject.CurrentClockSpeed)]));// Uint32
    Writeln(Format('DataWidth %d',[Integer(FWbemObject.DataWidth)]));// Uint16
    Writeln(Format('Description %s',[String(FWbemObject.Description)]));// String
    Writeln(Format('DeviceID %s',[String(FWbemObject.DeviceID)]));// String
//    Writeln(Format('ErrorCleared %s',[String(FWbemObject.ErrorCleared)]));// Boolean
//    Writeln(Format('ErrorDescription %s',[String(FWbemObject.ErrorDescription)]));// String
    Writeln(Format('Family %d',[Integer(FWbemObject.Family)]));// Uint16
//    Writeln(Format('InstallDate %s',[String(FWbemObject.InstallDate)]));// Datetime
//    Writeln(Format('LastErrorCode %d',[Integer(FWbemObject.LastErrorCode)]));// Uint32
    Writeln(Format('LoadPercentage %d',[Integer(FWbemObject.LoadPercentage)]));// Uint16
    Writeln(Format('MaxClockSpeed %d',[Integer(FWbemObject.MaxClockSpeed)]));// Uint32
    Writeln(Format('Name %s',[String(FWbemObject.Name)]));// String
//    Writeln(Format('OtherFamilyDescription %s',[String(FWbemObject.OtherFamilyDescription)]));// String
//    Writeln(Format('PNPDeviceID %s',[String(FWbemObject.PNPDeviceID)]));// String
//    Writeln(Format('PowerManagementCapabilities %d',[Integer(FWbemObject.PowerManagementCapabilities)]));// Uint16
    Writeln(Format('PowerManagementSupported %s',[String(FWbemObject.PowerManagementSupported)]));// Boolean
    Writeln(Format('Role %s',[String(FWbemObject.Role)]));// String
    Writeln(Format('Status %s',[String(FWbemObject.Status)]));// String
    Writeln(Format('StatusInfo %d',[Integer(FWbemObject.StatusInfo)]));// Uint16
//    Writeln(Format('Stepping %s',[String(FWbemObject.Stepping)]));// String
    Writeln(Format('SystemCreationClassName %s',[String(FWbemObject.SystemCreationClassName)]));// String
    Writeln(Format('SystemName %s',[String(FWbemObject.SystemName)]));// String
//    Writeln(Format('UniqueId %s',[String(FWbemObject.UniqueId)]));// String
    Writeln(Format('UpgradeMethod %d',[Integer(FWbemObject.UpgradeMethod)]));// Uint16

    Writeln('');
    FWbemObject:=Unassigned;
  end;
end;


begin



  try
    { TODO -oEntwickler -cKonsole Main : Hier Code einfügen }
    Coinitialize(nil);
    GetCIM_ProcessorInfo;
    CoUninitialize;
    Readln;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:43 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz