![]() |
Auslesen der Mainboard Seriennummer
Sers Delphi-Programmierer,
Bräuchte Tipps wie man die Seriennummer vom Mainboard auslesen kann? Am besten aus der Registry. Danke schon mal im voraus |
Re: Auslesen der Mainboard Seriennummer
Warum über die Registry? Willst du es dir unbedingt schwer machen oder was hat das für einen Grund? :gruebel:
Gehen sollte es sehr einfach mit ![]() ![]() |
Re: Auslesen der Mainboard Seriennummer
ich hab leider keine ahnung von wmi :-( würds gern machen über wmi
|
Re: Auslesen der Mainboard Seriennummer
Ich hab dir den Link zum kompletten Code zum Auslesen von WMI-Informationen doch gepostet... :wall:
|
Re: Auslesen der Mainboard Seriennummer
habs mal ausprobiert auch mit dem vorgegebenen quellcode. funzt bei mir gar net :-(
|
Re: Auslesen der Mainboard Seriennummer
Was funzt net... ein bisschen mehr Details bei der Fehlerbschreibung wäre hilfreich, da es ja grunsätzlich funzt und daher nicht so einfach reproduzierbar ist.
|
Re: Auslesen der Mainboard Seriennummer
Was heißt das? Fehlermeldung? Wie hast du es aufgerufen? Welches Betriebssystem, Delphiversion? :glaskugel:
|
Re: Auslesen der Mainboard Seriennummer
das er nicht die variablen und uses erkennt von dem quellcode. ich benutze delphi 2007 auf einem xp rechner.
Danke schon mal |
Re: Auslesen der Mainboard Seriennummer
Da musst du die Typebibliothek "Micrososft WMI Scripting" importieren.
Delphi Menü -> Projekt -> Typebibliothek importieren Danach hast Du in der Komponentenliste im Bereich ActiveX zusätzliche Komponenten. Glaube "SWbemLocator" reicht, das einfach auf's Formular ziehen. |
Re: Auslesen der Mainboard Seriennummer
Wenn du mal einen (!) Beitrag über dem verlinkten schaust, dann siehst du, dass ich da die Unit gepostet habe... :wall:
|
Re: Auslesen der Mainboard Seriennummer
Ja, aber da müsste er wohl im Forum dort eingeloggt sein. Wenn man zum ersten mal sowas macht ist das schon nicht so 100% offensichtlich, wie man vorgeht.
|
Re: Auslesen der Mainboard Seriennummer
Liste der Anhänge anzeigen (Anzahl: 1)
Nein, angezeigt wird der Anhang trotzdem, dass er vorhanden ist, und was es ist hatte ich ja geschrieben. Das mit dem Einloggen ist aber ein Argument, ich hänge es mal hier auch an.
|
Re: Auslesen der Mainboard Seriennummer
Zitat:
Ich steh echt auf dem Schlauch gäbs keine andere Möglichkeit die Seriennummer auszulesen :-( |
Re: Auslesen der Mainboard Seriennummer
Zitat:
// EDIT: Ich weiß nicht, ob das in der Registry überhaupt erreichbar ist, hast du denn mal nach dem Wert gesucht? Sinnvoller wäre sicher WMI, allerdings tragen viele Treiber die Seriennummer gar nicht erst ein oder die ist gar nicht gesetzt... Die Produktnummer ist oft nur zu sehen. |
Re: Auslesen der Mainboard Seriennummer
[quote="jaenicke"]
Zitat:
ok darunter sollte ich "SWbemLocator" mir runter ziehen blos wird bei mir die komponente nicht angezeigt under Active X oder ich hab des blos jetzt falsch verstanden :pale: |
Re: Auslesen der Mainboard Seriennummer
Nimm doch einfach den Anhang... Ich habe die Unit doch extra auch hier gepostet, damit du dich nicht drüben im DF anmelden musst...
|
Re: Auslesen der Mainboard Seriennummer
Zitat:
Wenn Du den Eintrag gefunden hast, dann entweder Unit erstellen (das ist dann die gleiche, wie die von jaenicke) oder Komponente installieren. Dann gibt es eine Komponente im ActiveX Tab/Bereich. Hab' hier nur D5, wie es bei BDS2007 auussieht weis ich noch nicht auswendig und das ist Zuhause installiert. |
Re: Auslesen der Mainboard Seriennummer
Zitat:
|
Re: Auslesen der Mainboard Seriennummer
Was hat das mit VCL-Formular oder nicht zu tun? Du benutzt die Unit und schreibst die in die uses und fertig. :roll:
|
Re: Auslesen der Mainboard Seriennummer
ok ich bin weiter gekommen
![]() was muss ich raus nehmen (siehe link) um die seriennummer des mainboards zu bekommen.
Delphi-Quellcode:
function QueryWMI(const QueryClass, QueryProperty: String; AStrings: TStrings): Boolean;
var Locator: ISWbemLocator; Services: ISWbemServices; ObjectSet: ISWbemObjectSet; WMIObject: ISWbemObject; WMIProperty: ISWbemProperty; Enum: IEnumVariant; ObjValue: Cardinal; TempObj: OleVariant; begin Result := FALSE; try Locator := CoSWbemLocator.Create; try Services := Locator.ConnectServer('', 'root\cimv2', '', '', '','', 0, NIL); if Assigned(Services) then begin Services.Security_.ImpersonationLevel := 3; ObjectSet := Services.ExecQuery('SELECT * FROM '+QueryClass, 'WQL', wbemFlagForwardOnly or wbemFlagReturnWhenComplete, NIL); Enum := (ObjectSet._NewEnum) as IEnumVariant; while (Enum.Next(1, TempObj, ObjValue) = S_OK) do begin try WMIObject := IUnknown(TempObj) as ISWBemObject; except WMIObject := NIL; end; TempObj := Unassigned; // Interface in TempObj freigeben if Assigned(WMIObject) then begin WMIProperty := WMIObject.Properties_.Item(QueryProperty, 0); if (NOT VarIsNull(WMIProperty.Get_Value)) then AStrings.Add(Trim(WMIProperty.Get_Value)); end; end; Result := TRUE; end; finally Services := NIL; Locator := NIL; end; except // Exceptions fangen (Wenn WMI nicht verfügbar/installiert ist, gibt´s eine!) Result := FALSE; end; end; procedure TfrmSystemInfo.Button1Click(Sender: TObject); begin QueryWMI('Win32_VideoController','Caption',Systemauswertung.Lines); end; Mit freundlichen Grüßen Kumar89 |
Re: Auslesen der Mainboard Seriennummer
Naja, willst du Win32_VideoController und dessen Eigenschaft Caption abfragen? Nein? Sondern die verlinkte Klasse?
Und warum schreibst du das nicht hin? |
Re: Auslesen der Mainboard Seriennummer
habs schon raus passt schon jetzt zu was weiterem nämlich möchte ich das es sofort im Edit erscheint wenn ich es mit:
Delphi-Quellcode:
kommt folgende Fehlermeldung: Nicht genügend wirkliche Parameter.
Edit8.text := QueryWMI('Win32_BaseBoard','SerialNumber');
Was mache ich da falsch? Danke schon mal im voraus ;) |
Re: Auslesen der Mainboard Seriennummer
Du hast den dritten Parameter, in den das Ergebnis soll, ja auch weggelassen statt nur die abzufragenden Werte zu ändern. Zudem: Wie soll ein Booleanwert (der den Erfolg der Abfrage angibt) in Edit.Text gehen?
Nebenbei: Ich habe keinen PC gefunden, bei dem die Seriennnummer des Mainboards gesetzt gewesen wäre, bei mir ist die überall leer oder mit einem Platzhalter gefüllt... |
Re: Auslesen der Mainboard Seriennummer
Zitat:
könntest mir weiter helfen da ich es mal anders probiert hab so wie dus meinst aber klappt auch net so wirklich |
Re: Auslesen der Mainboard Seriennummer
Delphi-Quellcode:
procedure ...
var ResultList: TStringList; begin ResultList := TStringList.Create; try if QueryWMI('Win32_BaseBoard', 'SerialNumber', ResultList) then edtResultDisplay.Text := ResultList.Text else edtResultDisplay.Text := 'Fehler beim Auslesen'; finally ResultList.Free; end; end; |
Re: Auslesen der Mainboard Seriennummer
Danke hat geklappt ;)
|
DP-Maintenance
Dieses Thema wurde von "Sharky" von "Multimedia" nach "Sonstige Fragen zu Delphi" verschoben.
Auch die falsche Sparte. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 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