delphi 如何读取显卡的详细信息(显存,位宽,流处理器数量等)
时间:2011-08-06
来源:互联网
如题,尽量不用directX
作者: hg5zh 发布时间: 2011-08-06
附我目前写的一段:
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;
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;
作者: hg5zh 发布时间: 2011-08-06
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28