![]() |
|
#1
|
|||
|
|||
![]() Пытаюсь создать программу,которая выводит данные о железе ,но весь процесс встал на процессоре. Данную работу делаю через 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 |