AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Comptername und GetMotherBoardSerial für WINDOWS und LINUX
Thema durchsuchen
Ansicht
Themen-Optionen

Comptername und GetMotherBoardSerial für WINDOWS und LINUX

Ein Thema von bernhard_LA · begonnen am 1. Jun 2018 · letzter Beitrag vom 2. Jun 2018
Antwort Antwort
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#1

Comptername und GetMotherBoardSerial für WINDOWS und LINUX

  Alt 1. Jun 2018, 12:06
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;
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Comptername und GetMotherBoardSerial für WINDOWS und LINUX

  Alt 1. Jun 2018, 12:35
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.
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Comptername und GetMotherBoardSerial für WINDOWS und LINUX

  Alt 1. Jun 2018, 15:04
Zu GetComputerName:

Wirst pech haben, da das eine Info rein für Windows ist (hab unter Linux noch nirgends einen gesehen)
Nur etwas nicht gesehen zu haben heißt ja nicht, dass es etwas nicht gibt...

Unter Linux fragte bisher jede Distribution die ich ausprobiert habe schon bei der Installation nach dem Hostnamen, da steht er z.B.:

Code:
cat /etc/hostname
Ohne Garantie dass das bei jeder Distribution dort steht.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.534 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Comptername und GetMotherBoardSerial für WINDOWS und LINUX

  Alt 1. Jun 2018, 15:34
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}
  Mit Zitat antworten Zitat
Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#5

AW: Comptername und GetMotherBoardSerial für WINDOWS und LINUX

  Alt 1. Jun 2018, 20:41
Um unter Linux den Hostname zu bekommen, besser die Funktion uname verwenden - ist zukunftsträchtiger als Files einzulesen:
http://man7.org/linux/man-pages/man2/uname.2.html
(im struct utsname das Feld nodename, und ab dem ersten Punkt abschneiden)
  Mit Zitat antworten Zitat
olafhess

Registriert seit: 19. Mär 2006
Ort: Großraum München
1 Beiträge
 
Delphi 2010 Professional
 
#6

AW: Comptername und GetMotherBoardSerial für WINDOWS und LINUX

  Alt 2. Jun 2018, 06:26
Zum Auslesen von Hardware-Informationen unter Windows und Linux gibt es das "tsmbios"-Projekt:
https://github.com/RRUZ/tsmbios

Funktioniert wunderbar unter Windows und unterstützt laut Autor auch Linux (Delphi 10.2 und FPC).

Voraussetzung ist, dass die Hardware DMI-Informationen liefert. Nur wirklich alte PCs (deutlich älter als 10 Jahre) sollten das nicht unterstützen.
Olaf Heß

Geändert von olafhess ( 2. Jun 2018 um 06:35 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:00 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