![]() |
CPU ID - Ausleseproblem bei einem Dualboard
Hallo,
mit folgendem Code versuche ich die CPU-ID zu generieren. Doch, falls der PC 2 CPUs also ein Dualboard besitzt, funktioniert der code nicht mehr so wie er soll. Wie kann man erreichen, dass immmer nur 1 CPU ausgelesen wird? Oder könnte man irgendwie irgendwelche andere Hardware-IDs auslesen, die auch anch dem Formatieren gleich bleiben. Danke euch !
Delphi-Quellcode:
const
ID_BIT = $200000; // EFLAGS ID bit type TCPUID = array[1..4] of Longint; function IsCPUID_Available: Boolean; register; asm PUSHFD {direct access to flags no possible, only via stack} POP EAX {flags to EAX} MOV EDX,EAX {save current flags} XOR EAX,ID_BIT {not ID bit} PUSH EAX {onto stack} POPFD {from stack to flags, with not ID bit} PUSHFD {back to stack} POP EAX {get back to EAX} XOR EAX,EDX {check if ID bit affected} JZ @exit {no, CPUID not availavle} MOV AL,True {Result=True} @exit: end; function GetCPUID: TCPUID; assembler; register; asm PUSH EBX {Save affected register} PUSH EDI MOV EDI,EAX {@Resukt} MOV EAX,1 DW $A20F {CPUID Command} STOSD {CPUID[1]} MOV EAX,EBX STOSD {CPUID[2]} MOV EAX,ECX STOSD {CPUID[3]} MOV EAX,EDX STOSD {CPUID[4]} POP EDI {Restore registers} POP EBX end; function GetID: string; //IntToPos ist notwendig, da in extrem seltenen Fällen negative CPU-ID's vorkommen function IntToPos(Value: Integer): integer; overload; begin if Value < 0 then Result := -Value else Result := Value; end; function IntToPos(Value: Int64): int64; overload; begin if Value < 0 then Result := -Value else Result := Value; end; begin if IsCPUID_Available then result := IntToStr(IntToPos(GetCPUID[1])) + IntToStr(IntToPos(GetCPUID[2])) + IntToStr(IntToPos(GetCPUID[3])) + IntToStr(IntToPos(GetCPUID[4])) else result := '70000'; //Dummywert end; |
Re: CPU ID - Ausleseproblem bei einem Dualboard
Zitat:
|
Re: CPU ID - Ausleseproblem bei einem Dualboard
hi,
wurde irgendetwas davon schon im Forum besprochen? Festplattennummer soll, einem Beitrag zufolge nach dem Formatieren verloren gehen. Danke sehr fuer die Antwort |
Re: CPU ID - Ausleseproblem bei einem Dualboard
Zitat:
Und das mit der Mac-Adresse der Netzwerkkarte ist auch net sehr sicher, da es im Internet einige Software gibt mit der man diese Nummer ändern kann bzw. eine andere Nummer vortäuschen kann. |
Re: CPU ID - Ausleseproblem bei einem Dualboard
Zitat:
|
Re: CPU ID - Ausleseproblem bei einem Dualboard
welche Möglichkeit habe ich, wenn ich dann die Serialnummer des Mainboards auslesen will`?
Ich brauche unbedingt eine feste ID, die isch niemals ändert :/. Villeicht vom Bioschip. Was ist eigenlich egal .. Danche fuer eure Antworten |
Re: CPU ID - Ausleseproblem bei einem Dualboard
Also da dies öfters auftaucht muss ich mich dazu mal äußern.
Hier wird zwar immerwieder geschrieben das sich die Festplatten-ID nach dem formatieren ändert, aber vielmehr meinen die Leute damit die VolumeID. Leider wissen da manche den Unterschied nicht. Wenn eine partition formatiert wird, so wird dieser partition eine ID zugewiesen. Diese ID ändert sich logicherweise wenn man die platte neu schreibt. Dann gibt es aber noch eine FestplattenID welche sich nicht ändert. Die VolumeID gibt es also für Laufwerk C, D, E, F etc. und dann gibt es die Festplatten ID welche nichts mit Laufwerk C, D, E etc. zu tun hat sondern wirklich nur mit der Festplatte, unabhängig davon ob diese formatiert/partitioniert wurde oder nicht. Zitat:
|
Re: CPU ID - Ausleseproblem bei einem Dualboard
ok danke.
Ich such dann mal weiter... |
Re: CPU ID - Ausleseproblem bei einem Dualboard
Du musst vermutlich sicherstellen das der Thread auf einer bestimmten CPU laeuft.
Dazu gibt es eine Funktion ProcessorAffinityMask (oder so aehnlich). Such mal bei Google mit den Wortbestandteilen. |
Re: CPU ID - Ausleseproblem bei einem Dualboard
Danke, habe einen Beitrag gefunden,
wo erklärt wird wie man die Festplattenserialnummer auslesen kann. Ich verwende wahrscheinlich die angebotene lösung. Danke euch! |
Re: CPU ID - Ausleseproblem bei einem Dualboard
Zitat:
darf man fragen, wo Du das gefunden hast ? Danke ! |
Re: CPU ID - Ausleseproblem bei einem Dualboard
Ich würde auch gerne wissen wo du dazu was gefunden hast.
Und ich meine die richtige Festplatten Seriennummer und nicht die der logischen Partition... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 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 by Thomas Breitkreuz