
07.05.2013, 12:36
|
Прохожий
|
|
Регистрация: 01.05.2013
Сообщения: 5
Версия Delphi: delphi 7
Репутация: 10
|
|
данные о железе
Пытаюсь создать программу,которая выводит данные о железе ,но весь процесс встал на процессоре. Данную работу делаю через WMI
выдаёт пару ошибок,всё перерыл ничего не нашёл
Код:
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.OleServer, WbemScripting_TLB, ActiveX,
Vcl.StdCtrls, Vcl.Buttons, Vcl.ExtCtrls, Vcl.CheckLst;
type
TForm1 = class(TForm)
SWbemLocator1: TSWbemLocator;
BitBtn1: TBitBtn;
CheckListBox1: TCheckListBox;
LinkLabel1: TLinkLabel;
procedure BitBtn1Click(Sender: TObject);
procedure ShowProp(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
var
Service: ISWbemServices;
ObjectSet: ISWbemObjectSet;
SObject: ISWbemObject;
PropSet: ISWbemPropertySet;
SProp: ISWbemProperty;
PropEnum, Enum: IEnumVariant;
TempObj: OleVariant;
Value: Cardinal;
StrValue: string;
begin
Service := SWbemLocator1.ConnectServer('.', 'root\CIMV2', '', '', '', '', 0,
nil);
SObject := Service.Get('Win32_Processor', wbemFlagUseAmendedQualifiers, nil);
ObjectSet := SObject.Instances_(0, nil);
Enum := (ObjectSet._NewEnum) as IEnumVariant;
Enum.Next(1, TempObj, Value);
SObject := IUnknown(TempObj) as SWBemObject;
PropSet := SObject.Properties_;
PropEnum := (PropSet._NewEnum) as IEnumVariant;
while (PropEnum.Next(1, TempObj, Value) = S_OK) do
begin
SProp := IUnknown(TempObj) as SWBemProperty;
StrValue := '';
CheckListBox1.AddItem(SProp.Name, nil);
ShowProp(SProp);
end;
end;
procedure TForm1.ShowProp(SProp: SWBemProperty);
begin
if (SProp.Get_Value < > null) then
begin
with SProp do
begin
if Name = 'Name' then
Label1.Caption := Get_Value
else if Name = 'Manufacturer' then
….
end;
end;
end;
end.
Ошибки
Код:
ShowProp(SProp); - Incompatible types: 'TObject' and 'ISWbemProperty'
Код:
if (SProp.Get_Value < > null) then - ')' expected but identifier 'lt' found
и ещё тут почему-то ругаеться
Код:
procedure TForm1.ShowProp(SProp: SWBemProperty);- Declaration of 'ShowProp' differs from previous declaration
помогите )
|