如题,尽量不用directX

解决方案 »

  1.   

    附我目前写的一段:
    procedure displayVideoInfo;
    var
      wmi, objs, obj: OleVariant;
      enum: IEnumVariant;
      value: Cardinal;
    begin
      wmi := CreateOleObject('WbemScripting.SWbemLocator');
      //ConnectServer无参表示连接本机
      objs := wmi.ConnectServer().ExecQuery('SELECT * FROM Win32_VideoController');
      enum := IUnknown(Objs._NewEnum) as IEnumVariant;
      enum.Reset;
      //扫描每一块显卡
      while enum.Next(1, obj, value) = S_OK do
      begin
        memoInfo.Lines.Add('名称: ' + Obj.Name);
        memoInfo.Lines.Add('制造商: ' + Obj.AdapterCompatibility);
        memoInfo.Lines.Add('芯片类型: ' + Obj.VideoProcessor);
        memoInfo.Lines.Add('DAC类型: ' + Obj.AdapterDACType);
        memoInfo.Lines.Add('显存:' + VarToStr(Obj.AdapterRAM div 1024 div 1024) + 'M');
        memoInfo.Lines.Add('颜色: ' + VarToStr(Obj.CurrentBitsPerPixel) + '位');
        //......    
      end;
    end;