Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Delphi Unit für HardwareInfos (https://www.delphipraxis.net/58853-unit-fuer-hardwareinfos.html)

Scorpion3000 13. Dez 2005 17:10


Unit für HardwareInfos
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Leute!

Hab eine Unit geschrieben, die über die WMI verschiedenste Informationen bereitstellt.

Die Prozedur "Reload" lädt die Informationen neu.
Wird bei Create der Parameter "Load" auf true gesetzt so werden beim Erstellen die Informationen geladen.

Später werde ich die Unit wahrscheinlich noch ergänzen.

Mfg Scorpion3000

Thorben86 13. Dez 2005 17:46

Re: Unit für HardwareInfos
 
Es wäre eventuell noch sinnvoll, wenn du zumindest einen Auszug der Funktionsliste posten würdest.
Ich weiß, man kann auch erst runterladen und reingucken um dies Festzustellen, allerdings finde ich es immer besser, wenn ich schon vorher so ca weis, wass mich erwartet :roll:

ichbins 13. Dez 2005 18:08

Re: Unit für HardwareInfos
 
:gruebel:

wenn ich die Unit compilieren will, krieg ich als erstes die Nachricht dass die Unit WBemScripting_TLB.dcu nicht gefunden wurde.

dann krieg ich hier
Delphi-Quellcode:
     
PrintJobDataType: string;
PrintProcessor: string;
Priority: uint32;
Published: boolean;  //<-------
Queued: boolean;
RawOnly: boolean;
einen Fehler weil das Schlüsselwort PUBLISHED nicht als Variablenname verwendet werden darf. Jetzt habe ich daraus ein PUBLISHEDD gemacht, und es funzt.

@thorben: die Liste würde 1000 Zeilen lang sein...

DP-Maintenance 13. Dez 2005 19:02

DP-Maintenance
 
Dieses Thema wurde von "MrSpock" von "Windows API / MS.NET Framework API" nach "Open-Source" verschoben.
Passt besser in Open Source.

Scorpion3000 14. Dez 2005 09:16

Re: Unit für HardwareInfos
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ok! Das mit dem Published hab ich augebessert. Heißt hetzt _Published

WBemScripting_TLB.dcu: Um diese Unit zu erhalten müsst ihr die Typenbibliothek "Microsoft WMI Scripting V 1.2 Library ..." importieren.

Es gibt insgesamt 35 Klassen, die alle relativ ähnlich aufgebaut sind. Es ist viele einfacher ihr schaut mal rein, als wie wenn ich hier alle auf Liste. Ansonsten gibt es in der MSDN eine Erklärung zu jeder Klasse. Hab hauptsächlich einmal die Hardware Klassen eingebaut. Allerdings ohne deren Methoden. War eh schon sehr, sehr viel Arbeit.

Kurz noch ein paar Worte zu den Klassen. Die meisten Klassen stellen Funktionen bereit, um den zu einem bestimmten Wert gehörenden Text auszugeben. Z.B:

Delphi-Quellcode:
    function TWin32_Battery.AvailabilityToStr(Availability: uint16): string;
Jede Klasse besitzt ein Property namens Item und eines namens ItemCount. Jedes Item steht für eine Liste aus Klassenspezifische Properties.

Ein kurzes Beispiel (ungetestet):

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
   i1: integer;
   CPU: TWIN32_Processor;
begin
   CPU:= TWIN32_Processor.Create(true);
   for i1:= 0 to CPU.ItemCount-1 do begin
      Memo1.Lines.Add('Caption: '+CPU.Item[i1].Caption);
      Memo1.Lines.Add('Architecture: '+CPU.ArchitectureToStr(CPU.Item[i1].Architecture));
      Memo1.Lines.Add('Clock: '+inttostr(CPU.Item[i1].MaxClockSpeed));
      Memo1.Lines.Add('Family: '+CPU.FamilyToStr(CPU.Item[i1].Family));
      Memo1.Lines.Add('ProcessorType: '+CPU.ProcessorTypeToStr(CPU.Item[i1].ProcessorType));
      Memo1.Lines.Add('Description: '+CPU.Item[i1].Description);
      Memo1.Lines.Add('DeviceID: '+CPU.Item[i1].DeviceID);
      Memo1.Lines.Add('ErrorDescription: '+CPU.Item[i1].ErrorDescription);
      Memo1.Lines.Add('Manufacturer: '+CPU.Item[i1].Manufacturer);
      Memo1.Lines.Add('Name: '+CPU.Item[i1].Name);
      Memo1.Lines.Add('OtherFamilyDescription: '+CPU.Item[i1].OtherFamilyDescription);
      Memo1.Lines.Add('ProcessorId: '+CPU.Item[i1].ProcessorId);
      Memo1.Lines.Add('SocketDesignation: '+CPU.Item[i1].SocketDesignation);
      Memo1.Lines.Add('Status: '+CPU.Item[i1].Status);
      Memo1.Lines.Add('SystemName: '+CPU.Item[i1].SystemName);
      Memo1.Lines.Add('UniqueId: '+CPU.Item[i1].UniqueId);
      Memo1.Lines.Add('Version: '+CPU.Item[i1].Version);
      Memo1.Lines.Add('Voltage: '+CPU.VoltageCapsToStr(Cpu.Item[i1].VoltageCaps));
   end;
end;


Mfg Scorpion3000


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:03 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