![]() |
Comptername und GetMotherBoardSerial für WINDOWS und LINUX
ich benötige eine Windows und LINUX kompatible Variante dieser beiden Funktionen
Delphi-Quellcode:
Function GetMotherBoardSerial:string;
var WMIServices : ISWbemServices; Root : ISWbemObjectSet; Item : Variant; begin WMIServices := CoSWbemLocator.Create.ConnectServer('.', 'root\cimv2','', '', '', '', 0, nil); Root := WMIServices.ExecQuery('Select SerialNumber From Win32_BaseBoard','WQL', 0, nil); Item := Root.ItemIndex(0); Result:=VarToStr(Item.SerialNumber); end; function GetComputerName: string; var Buffer: array [0 .. MAX_COMPUTERNAME_LENGTH + 1] of Char; Size: Cardinal; begin Size := MAX_COMPUTERNAME_LENGTH + 1; Windows.GetComputerName(@Buffer, Size); result := StrPas(Buffer); end; |
AW: Comptername und GetMotherBoardSerial für WINDOWS und LINUX
Zu GetComputerName:
Wirst pech haben, da das eine Info rein für Windows ist (hab unter Linux noch nirgends einen gesehen) Zu GetMotherBoardSerial: Direkt das Bios abfragen statt die Windows-DB. |
AW: Comptername und GetMotherBoardSerial für WINDOWS und LINUX
Zitat:
Unter Linux fragte bisher jede Distribution die ich ausprobiert habe schon bei der Installation nach dem Hostnamen, da steht er z.B.:
Code:
Ohne Garantie dass das bei jeder Distribution dort steht.
cat /etc/hostname
|
AW: Comptername und GetMotherBoardSerial für WINDOWS und LINUX
Linux hat keine "Registry" wie Windows (also eine Art zentrale Einstellungsdatenbank), sondern verwaltet viele Informationen einfach in Dateien.
Die gewünschte Information erhält man auf fast allen Linux-Versionen z.B. so:
Delphi-Quellcode:
{$IFDEF LINUX}
sl := TStringList.create; try if FileExists('/etc/hostname') then begin sl.LoadFromFile('/etc/hostname'); if sl.count > 0 then begin if (sl.count > 1) and (Trim (sl[0]) = '')then begin sl.Delete(0); end; Result := sl[0]; end; end; finally sl.Free; end; {$ENDIF} |
AW: Comptername und GetMotherBoardSerial für WINDOWS und LINUX
Um unter Linux den Hostname zu bekommen, besser die Funktion uname verwenden - ist zukunftsträchtiger als Files einzulesen:
![]() (im struct utsname das Feld nodename, und ab dem ersten Punkt abschneiden) |
AW: Comptername und GetMotherBoardSerial für WINDOWS und LINUX
Zum Auslesen von Hardware-Informationen unter Windows und Linux gibt es das "tsmbios"-Projekt:
![]() Funktioniert wunderbar unter Windows und unterstützt laut Autor auch Linux (Delphi 10.2 und FPC). Voraussetzung ist, dass die Hardware ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 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