AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Delphi Unit für HardwareInfos
Thema durchsuchen
Ansicht
Themen-Optionen

Unit für HardwareInfos

Ein Thema von Scorpion3000 · begonnen am 13. Dez 2005 · letzter Beitrag vom 14. Dez 2005
Antwort Antwort
Scorpion3000
Registriert seit: 18. Apr 2004
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
Angehängte Dateien
Dateityp: pas wmicontrol_185.pas (520,6 KB, 112x aufgerufen)
 
Thorben86

 
Delphi 2005 Personal
 
#2
  Alt 13. Dez 2005, 17:46
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
  Mit Zitat antworten Zitat
ichbins

 
Delphi 2005 Personal
 
#3
  Alt 13. Dez 2005, 18:08


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...
Michael Enßlin
  Mit Zitat antworten Zitat
13. Dez 2005, 19:02
Dieses Thema wurde von "MrSpock" von "Windows API / MS.NET Framework API" nach "Open-Source" verschoben.
Passt besser in Open Source.
Scorpion3000

 
Delphi 7 Enterprise
 
#5
  Alt 14. Dez 2005, 09:16
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:

    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
Angehängte Dateien
Dateityp: pas wmicontrol_136.pas (522,5 KB, 138x aufgerufen)
  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 23:08 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