delphi中WMI的使用(一)
WMI(Windows Management Instrumentation,Windows 管理规范)是一项核心的 Windows 管理技术;用户可以使用 WMI 管理本地和远程计算机。
通过使用WMI,我们可以很方便的获取到电脑的系统信息,但是很遗憾的是,我在网上找到的基本上都是对于某个功能的实现,比如查询IP,获取计算机名称,检测操作系统信息等等,如果只是在工作中用到了来查一下是没有问题的,但是,要想全面的了解WMI中的类库,来系统的掌握就很困难,WMI中有哪些系统的类,里面有哪些属性,这些属性都代表什么意思?MSND上面对于vbscript脚本实现的教程很详细,但是具体在delphi中对应的类型和参数名称是不一样的。
先做一个通用一点的调用函数,具体的信息可以传递参数进来获取到:
function GetWMIProperty(WMIType, WMIProperty: string): string; var Wmi, Objs, Obj: OleVariant;C: Cardinal;i,Len:integer;tempItem:IEnumVariant; beginWmi:= CreateOleObject('WbemScripting.SWbemLocator');Objs := Wmi.ConnectServer('.','root\cimv2').ExecQuery('Select * from Win32_' + WMIType);tempItem:=IEnumVariant(IUnknown(Objs._NewEnum));Result:='';while (tempItem.Next(1, obj, c) = S_OK) dobeginObj := Obj.Properties_.Item(WMIProperty, 0).Value;if not VarIsNull(obj) thenbeginResult :=Result +trim(Obj);break;end;end; end;
因为WMI中通用的类大多是Win32_开头的,这里只需要传递后面的部分。
那么下一步,怎么知道我需要的是什么参数呢?以获取计算机名为例:
str := GetWMIProperty('OperatingSystem','CSName');即可获得。
当然,计算机名信息是比较常用的,在好几个类里面都有。
Win32_开头的类有:
Win32_IP4RouteTable
Win32_NetworkAdapterConfiguration
Win32_NetworkAdapterSetting
Win32_NetworkConnection
Win32_PhysicalMedia
Win32_POTSModemToSerialPort
Win32_PrinterConfiguration
Win32_SerialPortConfiguration
Win32_SerialPortSetting
Win32_SoundDevice
Win32_SystemBIOS
Win32_TapeDrive
Win32_USBControllerDevice
Win32_VideoController
Win32_VideoSettings
转载于:https://www.cnblogs.com/jinshizuofei/p/3418642.html
delphi中WMI的使用(一)相关推荐
- python wmi_python中wmi介绍和使用
python中wmi介绍和使用 (2011-03-03 11:05:00) 标签: python中wmi 介绍和使用 it python中wmi介绍和使用 一:WMI基础知识 ============ ...
- DELPHI 中 Window 消息大全使用详解
Window 消息大全使用详解 导读: Delphi是Borland公司的一种面向对象的可视化软件开发工具. Delphi集中了Visual C++和Visual Basic两者的优点:容易上手.功能 ...
- Delphi中的容器类(二)
TStrings类 出于效率的考虑,Delphi并没有象C++和Java那样将字符串定义为类,因此TList本身不能直接存储字符串,而字符串列表又是使用非常广泛的,为此Borland提供了TStrin ...
- Delphi中的线程类
Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchr ...
- 探究:如何判断Delphi中的对象指针是否可用
2019独角兽企业重金招聘Python工程师标准>>> 近日,在网上看到有网友问曰:如何确定一个对象指针是否可用?也就是说,如何确定一个对象指针是否指向一个真正可用的对象实例?其实这 ...
- 奇淫怪巧之在Delphi中调用不申明函数
前一阵子,研究了一段时间的Win32Asm,研究到后来发现Win32的ASM实际上还是和C版的介绍的一样.甚至还封装了一个简版的类似VCL库结构框架的32ASM结构库,不过搞着搞着就没兴趣了,也没继续 ...
- Delphi中的指针类型
首先讲讲指针类型在delphi中是怎么定义的: 指针类型的定义语法 type <指针类型标识符>=^<基类型>: 指针指向动态变量的类型是由^符后的基类型来标识,^符号也就是指 ...
- 自己对Delphi中使用正则表达式的研究心得
在 Delphi 中使用正则表达式, 目前 PerlRegEx 应该是首选, 在此分享一下自己的一些心得体会. 官方网站: http://www.regular-expressions.info/de ...
- 关于delphi中的register, pascal, cdecl, stdcall, safecall
最近用delphi写了个软件.所以特此也转篇文章,以留作记录吧. 1...http://blog.csdn.net/yfy_47/article/details/6572374 注: 使用错误,或者在 ...
最新文章
- Web 上一页下一页 用超链接 用按钮
- VMprotect静态跟踪 字节码反编译
- 汉字转拼音php代码函数,php中将汉字转换成拼音的函数代码
- Java8 PriorityQueue 源码阅读
- 微软第二财季营收达 517 亿美元,净利润同比增长 21%
- AI算法连载15:统计之数据降维
- 并发编程的 15 条建议(译)
- deque用法深度解析,一篇文章弄懂deque容器各种操作
- 双网卡mode6模式 同时工作 冗余互备
- 安卓中圆角背景图被拉伸的解决方案——.9.png
- 存储过程和函数具体的区别
- pageoffice 选中部分文字 添加书签和空白处添加书签 删除空白以及内容书签
- torch.max()及其参数探究/torch.max()返回的索引是什么意思
- [转]让你的网页文本框增加光晕效果与提示,水印(类似QQ2011)
- excel插件方格格子
- SAP库存管理报表(含无价厂)
- 转:eclipse failed to create the java virtual machine 问题图文解析
- rtsp-simple-server + srs搭建流媒体服务器
- 网约车风云再起:“小窗口”和“大窗口”齐开
- 拓展实践:系统函数的调用