Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > delphi + wmi


Автор: Штык 8.12.2008, 20:06
Доброго времени суток..
Возникла необходимость в программе работать с WMI. Долго мучался читал маны (http://www.delphikingdom.com/asp/viewitem.asp?catalogid=698) ни чего, не получилось хотя все делал как там написано, все время AV вылетает, нашел функцию 
Код

function GetWMIstring2 (wmiHost, wmiClass, wmiProperty : string):string;
var  // These are all needed for the WMI querying process
Locator:  ISWbemLocator;
Services: ISWbemServices;
SObject:  ISWbemObject;
ObjSet:   ISWbemObjectSet;
SProp:    ISWbemProperty;
Enum:     IEnumVariant;
Value:    Cardinal;
TempObj:  OleVariant;
SN: string;
begin
Locator := CoSWbemLocator.Create;
 Services :=  Locator.ConnectServer(wmiHost, 'root\wmi', '', '', '','', 0, nil);
ObjSet := Services.ExecQuery('SELECT * FROM '+wmiClass, 'WQL',
  wbemFlagReturnImmediately and wbemFlagForwardOnly , nil);
Enum :=  (ObjSet._NewEnum) as IEnumVariant;
while (Enum.Next(1, TempObj, Value) = S_OK) do
begin
  SObject := IUnknown(tempObj) as ISWBemObject;
  SProp := SObject.Properties_.Item(wmiProperty, 0);
  if VarIsNull(SProp.Get_Value) then
    result := ''
  else
  begin
    SN := SProp.Get_Value;
    result :=  SN;
  end;

но и при ее использовании вылетает ошибка "Project Project1.exe raised exception class EOleException with message 'Не поддерживается'"
в чем может быть проблема может версия делфи глючная? у меня Code Gear Delphi 2009..

Автор: Rrader 10.12.2008, 15:39
Посмотрите мой пример в аттаче

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)