AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Prozessor herausfinden, neuere Version ?

Ein Thema von hoika · begonnen am 7. Dez 2011 · letzter Beitrag vom 8. Dez 2011
Antwort Antwort
Seite 1 von 2  1 2      
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#1

Prozessor herausfinden, neuere Version ?

  Alt 7. Dez 2011, 15:16
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
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.024 Beiträge
 
Delphi 12 Athens
 
#2

AW: Prozessor herausfinden, neuere Version ?

  Alt 7. Dez 2011, 15:32
Ich weiß nicht, ob dir das ausreicht, aber GetSystemInfo liefert wProcessorArchitecture, wProcessorLevel und wProcessorRevision.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: Prozessor herausfinden, neuere Version ?

  Alt 7. Dez 2011, 15:36
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?
Michael
Ein Teil meines Codes würde euch verunsichern.

Geändert von Luckie ( 7. Dez 2011 um 15:39 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Prozessor herausfinden, neuere Version ?

  Alt 7. Dez 2011, 15:39
Wie wäre es das Windows zu überlassen und per WMI das einfach abzufragen?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Prozessor herausfinden, neuere Version ?

  Alt 7. Dez 2011, 15:49
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
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: Prozessor herausfinden, neuere Version ?

  Alt 7. Dez 2011, 15:55
Google? Bei Google suchencpu info windows registry
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Prozessor herausfinden, neuere Version ?

  Alt 7. Dez 2011, 16:00
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)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Steku

Registriert seit: 12. Mai 2008
181 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

AW: Prozessor herausfinden, neuere Version ?

  Alt 7. Dez 2011, 16:02
... 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...
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Prozessor herausfinden, neuere Version ?

  Alt 7. Dez 2011, 16:10
Edit: OK, zu spät...


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;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#10

AW: Prozessor herausfinden, neuere Version ?

  Alt 7. Dez 2011, 17:38
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.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:20 Uhr.
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