Inno setup 在INNO设置中清除油变和透镜变

Inno setup 在INNO设置中清除油变和透镜变,inno-setup,Inno Setup,我在delphi中的代码部分有一个获取BIOS序列号的函数,但它无法识别变量声明。我该怎么解决这个问题呢 var FSWbemLocator : OleVariant; FWMIService : OleVariant; function GetWMIstring(const WMIClass, WMIProperty:string): string; var FWbemObjectSet: OleVariant; FWbemObject : OleVariant;

我在delphi中的代码部分有一个获取BIOS序列号的函数,但它无法识别变量声明。我该怎么解决这个问题呢

var
  FSWbemLocator : OleVariant;
  FWMIService   : OleVariant;  

function GetWMIstring(const WMIClass, WMIProperty:string): string;
var
  FWbemObjectSet: OleVariant;
  FWbemObject   : OleVariant;
  oEnum         : lEnumVariant;
  iValue        : LongWord;
begin;
  Result:='';
  FWbemObjectSet:= FWMIService.ExecQuery(Format('Select %s from %s',[WMIProperty, WMIClass]),'WQL',wbemFlagForwardOnly);
  oEnum         := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
  if oEnum.Next(1, FWbemObject, iValue) = 0 then
    if not VarIsNull(FWbemObject.Properties_.Item(WMIProperty).Value) then
      Result:=FWbemObject.Properties_.Item(WMIProperty).Value;

  FWbemObject:=Unassigned;
end;

使用
Variant
代替
OleVariant
。和
SWbemObjectSet
您可以像
那样在循环中枚举I:=0到FWbemObjectSet.Count-1 do FWbemObject:=FWbemObjectSet.ItemIndex(I)自Windows Vista以来。谢谢。我想我已将代码更改为surgested。//oEnum:=IUnknown(FWbemObjectSet.\u NewEnum)作为olEnumVariant;对于I:=0到FWbemObjectSet.Count-1执行FWbemObject:=FWbemObjectSet.ItemIndex(I);//如果oEnum.Next(1,FWbemObject,iValue)=0,则//如果不是varisnll(FWbemObject.Properties_u2;Item(WMIProperty).Value),则结果:=FWbemObject.Properties_2;Item(WMIProperty).Value;但我知道得到一个错误“FWbemObjectSet未指定错误”。我还将所有变量更改为变量。请使用
Variant
而不是
OleVariant
。和
SWbemObjectSet
您可以像
那样在循环中枚举I:=0到FWbemObjectSet.Count-1 do FWbemObject:=FWbemObjectSet.ItemIndex(I)自Windows Vista以来。谢谢。我想我已将代码更改为surgested。//oEnum:=IUnknown(FWbemObjectSet.\u NewEnum)作为olEnumVariant;对于I:=0到FWbemObjectSet.Count-1执行FWbemObject:=FWbemObjectSet.ItemIndex(I);//如果oEnum.Next(1,FWbemObject,iValue)=0,则//如果不是varisnll(FWbemObject.Properties_u2;Item(WMIProperty).Value),则结果:=FWbemObject.Properties_2;Item(WMIProperty).Value;但我知道得到一个错误“FWbemObjectSet未指定错误”。我还将所有变量更改为变量。