Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Laptop oder Desktop Computer ermitteln?? (https://www.delphipraxis.net/87058-laptop-oder-desktop-computer-ermitteln.html)

Piro 25. Feb 2007 18:45

Re: Laptop oder Desktop Computer ermitteln??
 
Danke, dass hatte ich auch schon. Wollte aber nicht umwandeln, sondern habe gedacht, dass es auch mit Standardmitteln von Delphi gehen muss.

Habe es jetzt mit dem Akku programmiert. Vielleicht verändere ich den Code später einmal.

Vielen Dank für die ganzen Ideen und Anregungen.

Gruß, Sven

Chewie 25. Feb 2007 19:09

Re: Laptop oder Desktop Computer ermitteln??
 
Und wenn jemand seinen Akku herausnimmt, wird der Rechner als Desktop-PC erkannt. Auch nicht so toll, oder?

Piro 25. Feb 2007 22:00

Re: Laptop oder Desktop Computer ermitteln??
 
ja hast recht aber es reicht erstmal für meine Bedürfnisse.

Danke für den Tip.

Piro 25. Feb 2007 22:05

Re: Laptop oder Desktop Computer ermitteln??
 
Habe mal versucht den VBS Code umzusetzen aber es gelingt mir nicht so wirklich, da ich in diesem Gebiet absoluter Newbie bin.

Mein Code bis jetzt:
Delphi-Quellcode:
...
procedure TForm1.Button1Click(Sender: TObject);
var
 oCPAppletMgr, objWMIService, colChassis, objChassis : OleVariant;
 strComputer : string;
 i : Integer;
begin
 strComputer := '.';
 oCPAppletMgr := CreateOleObject('CPApplet.CPAppletMgr');
 objWMIService := GetObject('winmgmts:{impersonationLevel=impersonate}!\\'+ strComputer + '\root\cimv2'); // hier kommt ne Fehlermeldung: Inkompatible Typen: HGDIOBJ und String

 // Rest konnte ich noch nicht testen, da ich erst die Fehler oben beseitigen muss
 colChassis := objWMIService.ExecQuery('Select * from Win32_SystemEnclosure');

 for i:=0 to colChassis.Count do
 begin
   objChassis := colChassis.Item[i];
   ShowMessage(objChassis.ChassisTypes);
 end;
end;
...
Hilfe?

Alter Mann 26. Feb 2007 14:23

Re: Laptop oder Desktop Computer ermitteln??
 
Hi,

man könne ja auch in der DP nach WMI suchen, oder hier mal nach lesen: Windows Management Instrumentation

Andidreas 26. Feb 2007 14:43

Re: Laptop oder Desktop Computer ermitteln??
 
öhm vergebt ihr für eure pc's im geschäft keine bestimmten namen???

also bei uns hat eine workstation das kürzel 'ws' im pc namen.... ein notebook hat 'nb' drinne und ein server ein 'sv' da sich diese immer an der gleichen stelle befinden wäre das bei uns ganz einfach zu erkennen...

aber um auf denn lösungsweg mit dem akku zurück zukommen... hast du dir schon mal die jedis angeschaut??? da gibts eine TJvComputerInfoEx Komponente... in der kann mann auch denn akku prüfen...
vielleicht erkennt man darüber auch einen akku selbst wenn er am netzstrom hängt...

Piro 26. Feb 2007 21:08

Re: Laptop oder Desktop Computer ermitteln??
 
Die Namesgebung ist historisch gewachsen und ist halt für PCs und Laptops gleich.

Bin seit einiger Zeit auf der Suche nach der Umwandlung des VBS Codes aber kein Erfolg. Ich bräuchte eine komplette Codeumwandlung. Ich weiß, dass es eher nicht der Fall ist, dass man das macht.

Meine Lösung ist mit Lukie's Unit. Funktioniert wunderbar. Danke nochmal.

Mal sehen ob wir den VBS Code noch nach Delphi umgewandelt bekommen. Ansonsten vielen Dank für eure Hilfe.

Gruß, Sven

himitsu 27. Feb 2007 19:37

Re: Laptop oder Desktop Computer ermitteln??
 
Das Hier im Forum suchenWMI ist bestimmt 'nen guter Vorschlag.

Wenn du mich dann gefunden hast, dann könnte ich dir z.B. dieses vorschlagen: :angel:
> z.B. WMI (Windows Management Instrumentation) + Demo
Delphi-Quellcode:
Uses ..., WMI;

Var WMIResults: TWMIInfo;
  ChassisTypes: Integer;

If WMIGetInfo('.', 'root\CIMV2', '', '',
  'Select ChassisTypes from Win32_SystemEnclosure', WMIResults) Then
  ChassisTypes := StrToInt(WMIRead(WMIResults, 0, 'ChassisTypes'));

Piro 28. Feb 2007 20:39

Re: Laptop oder Desktop Computer ermitteln??
 
Danke, hat wunderbar geklappt. Habe den Artikel irgendwie übersehen.

Schönen Abend noch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:28 Uhr.
Seite 2 von 2     12   

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