(已解决)获取硬盘分区空间信息,万分感谢Afan哥
本帖最后由 xyhqqaa 于 2011-10-17 13:39 编辑想用listview获取硬盘空间类似信息,但是一直找不到方法。之前想用aida64获取配置文件在读取但是新手鸭梨大。。后来看到三恨哥的使用wmi读取,鸭梨更大。。。。。伸手党求简单方法.看了AFAN哥的。主要对正则不明白。读取配置文件还要分行。而且是动态的。咋整囧。。辜负他老人家一片良心。{:face (370):} (附件应该都不要钱吧- -。)(之前名字写成ACFAN,阿门。。罪过。。。见谅) “读取配置文件还要分行。而且是动态的” 这个完全无压力,你之前的字符串是如何获取的可以直接读取获取到的,比如 $str = FileRead('aida64生成的文档')
另外也可以看看此贴: http://www.autoitx.com/forum.php?mod=viewthread&tid=18361 是3M使用P版的Udf写的范例,是纯au3的,无需调用第三方软件。 本帖最后由 xyhqqaa 于 2011-10-17 13:04 编辑
回复 2# afan
看了3mile哥的例子。我感觉我没有存在这世界的意义了- -。。看不懂[系统摘要]
存储设备|IDE 控制器1=标准双通道 PCI IDE 控制器
存储设备|IDE 控制器2=标准双通道 PCI IDE 控制器
存储设备|硬盘驱动器1=csjvdisk device SCSI Disk Device
存储设备|硬盘驱动器2=ST3160812AS 41N3268 LEN (160 GB, 7200 RPM, SATA-II)
存储设备|光盘驱动器1=PIONEER DVD-RW DVR-116 (DVD+R9:12x, DVD-R9:12x, DVD+RW:20x/8x, DVD-RW:20x/6x, DVD-RAM:12x, DVD-ROM:16x, CD:40x/32x/40x DVD+RW/DVD-RW/DVD-RAM)
存储设备|硬盘 SMART 状态=OK
磁盘分区|磁盘分区1=C: (NTFS) 20002 MB (2296 MB 可用)
磁盘分区|磁盘分区2=D: (NTFS) 39997 MB (5351 MB 可用)
磁盘分区|磁盘分区3=E: (NTFS) 92616 MB (50526 MB 可用)
磁盘分区|大小=149.0 GB (56.8 GB 可用)
;Everest生成简单的配置例子大概就是这个。磁盘分区|磁盘分区1=C: (xxx) xxxxx MB (xxxxx MB 可用)
...........
afan哥之前您帮我获取Local $Str = _
'[系统摘要]' & @CRLF & _
'磁盘分区|磁盘分区1=C: (NTFS) 30004 MB (19314 MB free)' & @CRLF & _
'磁盘分区|磁盘分区2=D: (NTFS) 25603 MB (24223 MB free)' & @CRLF & _
'磁盘分区|磁盘分区3=E: (NTFS) 230000 MB (87171 MB free)' & @CRLF & _
'磁盘分区|磁盘分区4=F: (NTFS) 216932 MB (160868 MB free)' & @CRLF & _
'Partitions|Total Size=1041.5 GB (470.0 GB free)' & @CRLF
Local $Test = StringRegExp($Str, '(.):\h\((.+?)\)\h([^(]+)\h\((.+?)\h可用', 3)
;这边只想说 正则好强大 , 囧对于这个每行分行,为什么要分行。。俺就搞不明白咋弄了= =。。。。其实俺最大的问题还是把配置文件读取在listview中转不过弯 回复 3# xyhqqaa
不需要每行分行……
你说说你这段字符串是如何获取的吧~ 用aida64? 回复 4# afan 恩恩,就是使用aida64生成的报告,也就是之前的Everest 回复 5# xyhqqaa
生成了什么报告?文件名? 回复 6# afan 就是生成一个Report.ini。。= =。。。 Report.ini 里面的完整内容呢 本帖最后由 xyhqqaa 于 2011-10-17 13:16 编辑
回复 8# afan
afan哥- -。。。见谅新手。。。别烦,没理解您的意思
版本=AIDA64 v1.60.1314 Beta/cn
主页=http://www.aida64.com/
报告类型=命令行
计算机=C663
用户=dnyj05
操作系统=Microsoft Windows Server 2003, Enterprise Edition 5.2.3790 (Win2003 RTM)
日期=2011-10-13
时间=14:21
[系统摘要]
计算机|计算机类型=ACPI Multiprocessor PC
计算机|操作系统=Microsoft Windows Server 2003, Enterprise Edition
计算机|操作系统版本升级(SP)=Service Pack 2
计算机|Internet Explorer=6.0.3790.3959
计算机|DirectX=4.09.00.0904 (DirectX 9.0c)
计算机|计算机名称=C663
计算机|用户名称=dnyj05
计算机|SMTP 电子邮件地址=dnyj05@mail.xmfeipeng.com
计算机|登录域=SAG
计算机|日期/时间=2011-10-13 / 14:21
主板|处理器名称=AMD Athlon 64, 2000 MHz (10 x 200) 3200+
主板|主板名称=Lenovo ThinkCentre XXXX
主板|主板芯片组=nVIDIA GeForce 6100, AMD Hammer
主板|系统内存=2016 MB (DDR2-800 DDR2 SDRAM)
主板|BIOS 类型=Phoenix (07/19/06)
主板|通讯端口1=通信端口 (COM1)
主板|通讯端口2=ECP 打印机端口 (LPT1)
显示设备|显示适配器1=NVIDIA GeForce 6100 (256 MB)
显示设备|3D 加速器1=nVIDIA GeForce 6100
显示设备|显示器1=Lenovo LXB-HF769A (0168762120282)
多媒体|声音适配器1=Analog Devices AD1986A @ nVIDIA nForce 410 (MCP51) - High Definition Audio Controller
存储设备|IDE 控制器1=标准双通道 PCI IDE 控制器
存储设备|IDE 控制器2=标准双通道 PCI IDE 控制器
存储设备|硬盘驱动器1=csjvdisk device SCSI Disk Device
存储设备|硬盘驱动器2=ST3160812AS 41N3268 LEN (160 GB, 7200 RPM, SATA-II)
存储设备|光盘驱动器1=PIONEER DVD-RW DVR-116 (DVD+R9:12x, DVD-R9:12x, DVD+RW:20x/8x, DVD-RW:20x/6x, DVD-RAM:12x, DVD-ROM:16x, CD:40x/32x/40x DVD+RW/DVD-RW/DVD-RAM)
存储设备|硬盘 SMART 状态=OK
磁盘分区|磁盘分区1=C: (NTFS) 20002 MB (2246 MB 可用)
磁盘分区|磁盘分区2=D: (NTFS) 39997 MB (5347 MB 可用)
磁盘分区|磁盘分区3=E: (NTFS) 92616 MB (50516 MB 可用)
磁盘分区|大小=149.0 GB (56.7 GB 可用)
输入设备|键盘1=Standard 101/102-Key or Microsoft Natural PS/2 Keyboard
输入设备|鼠标1=PS/2 Compatible Mouse
网络设备|主 IP 地址=192.168.21.105
网络设备|主 MAC 地址=00-16-17-AB-98-D7
网络设备|网络适配器1=Broadcom NetLink (TM) Gigabit Ethernet (192.168.21.105)
外围设备|打印机1=\\192.168.20.102\HP Deskjet 1280
外围设备|打印机2=\\c271\HP Deskjet 1280
外围设备|打印机3=\\c279\EPSON LQ-590K ESC/P2
外围设备|打印机4=\\c279\HP LaserJet 2100 PCL6
外围设备|打印机5=\\c549\HP LaserJet 1022
外围设备|打印机6=\\c836\Samsung SCX-4x28 Series PCL 6
外围设备|打印机7=\\gl-ms-29\hp LaserJet 1015
外围设备|打印机8=Microsoft XPS Document Writer
外围设备|打印机9=PDF reDirect
外围设备|USB1 控制器1=nVIDIA nForce 410 (MCP51) - OHCI USB 1.1 Controller
外围设备|USB2 控制器1=nVIDIA nForce 410 (MCP51) - EHCI USB 2.0 Controller
DMI|DMI BIOS 供应商=LENOVO
DMI|DMI BIOS 版本=2NKT15AUS
DMI|DMI 系统制造商=LENOVO
DMI|DMI 系统产品=11111111
DMI|DMI 系统版本=ThinkCentre XXXX
DMI|DMI 系统序列号=1111111
DMI|DMI 系统 UUID=80A2D95F-B8640010-BE3ED55E-420EE0C6
DMI|DMI 主板制造商=LENOVO
DMI|DMI 主板产品=LENOVO
DMI|DMI 主板版本=<N/A>
DMI|DMI 主板序列号=<N/A>
DMI|DMI 主机制造商=LENOVO
DMI|DMI 主机版本=<N/A>
DMI|DMI 主机序列号=<N/A>
DMI|DMI 主机识别标签=<N/A>
DMI|DMI 主机类型=Mini Tower
[操作系统]
操作系统|操作系统名称=Microsoft Windows Server 2003, Enterprise Edition
操作系统|操作系统代码名称=Whistler Server
操作系统|操作系统语言=中文(中国)
操作系统|操作系统核心(Kernel)类型=Multiprocessor Free (32-bit)
操作系统|操作系统版本=5.2.3790 (Win2003 RTM)
操作系统|操作系统版本升级(SP)=Service Pack 2
操作系统|操作系统安装日期=2011-06-17
操作系统|操作系统根目录=C:\WINDOWS
授权信息|注册人=HUI
授权信息|注册组织=盛世雄风技术论坛
授权信息|授权处理器数量=8
授权信息|产品 ID=69813-640-4463461-45228
授权信息|产品密钥=JCQ6P-3GYX6-28P8W-R33W6-2CFDY
授权信息|产品激活 (WPA)=不需求
当前状态|计算机名称=C663
当前状态|用户名称=dnyj05
当前状态|登录域=SAG
当前状态|已运行时间=0000d 06:16:53
组件版本|Common Controls=5.82
组件版本|Internet Explorer=6.0.3790.3959
组件版本|Internet Explorer 更新=SP2
组件版本|Outlook Express=6.00.3790.3959 (srv03_sp2_rtm.070216-1710)
组件版本|Windows Media Player=10.00.00.3997
组件版本|Windows Messenger=-
组件版本|MSN Messenger=-
组件版本|Internet Information Services (IIS)=6.0
组件版本|.NET Framework=4.0.30319.1 built by: RTMRel
组件版本|Novell Client=-
组件版本|DirectX=4.09.00.0904 (DirectX 9.0c)
组件版本|OpenGL=5.2.3790.3959 (srv03_sp2_rtm.070216-1710)
组件版本|ASPI=-
操作系统特征|调试版本=否
操作系统特征|DBCS 版本=是
操作系统特征|域控制器=否
操作系统特征|安全性提供=否
操作系统特征|网络提供=是
操作系统特征|远程部分=否
操作系统特征|安全模式=否
操作系统特征|低速处理器=否
操作系统特征|终端服务=是
[已运行时间]
当前状态|上次关机=2011-10-12 18:39:48
当前状态|上次开机=2011-10-13 8:05:11
当前状态|当前时间=2011-10-13 14:21:22
当前状态|已运行时间=22614 秒 - (0 天 6 小时 16 分 54 秒)
运行统计|首次开机=2011-8-11 16:24:10
运行统计|首次关机=2011-8-11 16:22:41
运行统计|总共运行=1452700 秒 - (16 天 19 小时 31 分 40 秒)
运行统计|总共关机=4171997 秒 - (48 天 6 小时 53 分 17 秒)
运行统计|最长运行=53439 秒 - (0 天 14 小时 50 分 39 秒)
运行统计|最长关机=483550 秒 - (5 天 14 小时 19 分 10 秒)
运行统计|重启次数=76
运行统计|系统使用率=25.83%
蓝屏统计|蓝屏次数=0
信息|信息=上述统计系基于系统事件日志而作出
[打印机]
打印机1|打印机属性|打印机名称=\\192.168.20.102\HP Deskjet 1280
打印机1|打印机属性|默认打印机=否
打印机1|打印机属性|共享=HPDeskje
打印机1|打印机属性|打印机端口=USB001
打印机1|打印机属性|打印机驱动程序=HP Deskjet 1280 (v64.33)
打印机1|打印机属性|设备名称=\\192.168.20.102\HP Deskjet 128
打印机1|打印机属性|打印处理器=WinPrint
打印机1|打印机属性|分隔页=无
打印机1|打印机属性|使用率=总是
打印机1|打印机属性|优先级=1
打印机1|打印机属性|打印队列=0
打印机1|打印机属性|状态=未知
打印机1|纸张属性|纸张大小=A4, 210 x 297 mm
打印机1|纸张属性|打印方向=纵向
打印机1|纸张属性|打印质量=Medium Color
打印机1|打印机制造商|公司名称=Hewlett-Packard Company
打印机1|打印机制造商|产品信息=http://www.hp.com/united-states/consumer/gateway/printing_multifunction.html
打印机1|打印机制造商|驱动程序更新=http://www.aida64.com/driver-updates
打印机2|打印机属性|打印机名称=\\c271\HP Deskjet 1280
打印机2|打印机属性|默认打印机=否
打印机2|打印机属性|共享=HPDeskje
打印机2|打印机属性|打印机端口=USB001
打印机2|打印机属性|打印机驱动程序=HP Deskjet 1280 (v64.33)
打印机2|打印机属性|设备名称=\\c271\HP Deskjet 1280,DEVMODE,
打印机2|打印机属性|打印处理器=WinPrint
打印机2|打印机属性|分隔页=无
打印机2|打印机属性|使用率=总是
打印机2|打印机属性|优先级=1
打印机2|打印机属性|打印队列=0
打印机2|打印机属性|状态=未知
打印机2|纸张属性|纸张大小=A4, 210 x 297 mm
打印机2|纸张属性|打印方向=纵向
打印机2|纸张属性|打印质量=Medium Color
打印机2|打印机制造商|公司名称=Hewlett-Packard Company
打印机2|打印机制造商|产品信息=http://www.hp.com/united-states/consumer/gateway/printing_multifunction.html
打印机2|打印机制造商|驱动程序更新=http://www.aida64.com/driver-updates
打印机3|打印机属性|打印机名称=\\c279\EPSON LQ-590K ESC/P2
打印机3|打印机属性|默认打印机=否
打印机3|打印机属性|共享=EPSONLQ-
打印机3|打印机属性|打印机端口=USB001
打印机3|打印机属性|打印机驱动程序=EPSON LQ-590K ESC/P2 (v6.00)
打印机3|打印机属性|设备名称=\\c279\EPSON LQ-590K ESC/P2
打印机3|打印机属性|打印处理器=WinPrint
打印机3|打印机属性|分隔页=无
打印机3|打印机属性|使用率=总是
打印机3|打印机属性|优先级=1
打印机3|打印机属性|打印队列=0
打印机3|打印机属性|状态=未知
打印机3|纸张属性|纸张大小=A4, 210 x 297 mm
打印机3|纸张属性|打印方向=纵向
打印机3|纸张属性|打印质量=180 x 180 dpi Mono
打印机3|打印机制造商|公司名称=Epson America, Inc.
打印机3|打印机制造商|产品信息=http://www.epson.com
打印机3|打印机制造商|驱动程序更新=http://www.aida64.com/driver-updates
打印机4|打印机属性|打印机名称=\\c279\HP LaserJet 2100 PCL6
打印机4|打印机属性|默认打印机=是
打印机4|打印机属性|共享=HPLaserJ
打印机4|打印机属性|打印机端口=LPT1:
打印机4|打印机属性|打印机驱动程序=HP LaserJet 2100 PCL6 (v6.00)
打印机4|打印机属性|设备名称=\\c279\HP LaserJet 2100 PCL6
打印机4|打印机属性|打印处理器=WinPrint
打印机4|打印机属性|分隔页=无
打印机4|打印机属性|使用率=总是
打印机4|打印机属性|优先级=1
打印机4|打印机属性|打印队列=0
打印机4|打印机属性|状态=未知
打印机4|纸张属性|纸张大小=A4, 210 x 297 mm
打印机4|纸张属性|打印方向=纵向
打印机4|纸张属性|打印质量=600 x 600 dpi Mono
打印机4|打印机制造商|公司名称=Hewlett-Packard Company
打印机4|打印机制造商|产品信息=http://www.hp.com/united-states/consumer/gateway/printing_multifunction.html
打印机4|打印机制造商|驱动程序更新=http://www.aida64.com/driver-updates
打印机5|打印机属性|打印机名称=\\c549\HP LaserJet 1022
打印机5|打印机属性|默认打印机=否
打印机5|打印机属性|共享=HPLaserJ
打印机5|打印机属性|打印机端口=USB001
打印机5|打印机属性|打印机驱动程序=HP LaserJet 1022 (v5.06)
打印机5|打印机属性|设备名称=\\c549\HP LaserJet 1022
打印机5|打印机属性|打印处理器=IMFPrint
打印机5|打印机属性|分隔页=无
打印机5|打印机属性|使用率=总是
打印机5|打印机属性|优先级=1
打印机5|打印机属性|打印队列=0
打印机5|打印机属性|状态=未知
打印机5|纸张属性|纸张大小=A4, 210 x 297 mm
打印机5|纸张属性|打印方向=纵向
打印机5|纸张属性|打印质量=600 dpi Mono
打印机5|打印机制造商|公司名称=Hewlett-Packard Company
打印机5|打印机制造商|产品信息=http://www.hp.com/united-states/consumer/gateway/printing_multifunction.html
打印机5|打印机制造商|驱动程序更新=http://www.aida64.com/driver-updates
打印机6|打印机属性|打印机名称=\\c836\Samsung SCX-4x28 Series PCL 6
打印机6|打印机属性|默认打印机=否
打印机6|打印机属性|共享=SamsungS
打印机6|打印机属性|打印机端口=USB002
打印机6|打印机属性|打印机驱动程序=Samsung SCX-4x28 Series PCL 6 (v4.00)
打印机6|打印机属性|设备名称=\\c836\Samsung SCX-4x28 Series
打印机6|打印机属性|打印处理器=sss2mPC
打印机6|打印机属性|分隔页=无
打印机6|打印机属性|使用率=总是
打印机6|打印机属性|优先级=1
打印机6|打印机属性|打印队列=0
打印机6|打印机属性|状态=未知
打印机6|纸张属性|纸张大小=A4, 210 x 297 mm
打印机6|纸张属性|打印方向=纵向
打印机6|纸张属性|打印质量=600 dpi Color
打印机6|打印机制造商|公司名称=Samsung
打印机6|打印机制造商|产品信息=http://www.samsung.com/us/computer/printers
打印机6|打印机制造商|驱动程序更新=http://www.aida64.com/driver-updates
打印机7|打印机属性|打印机名称=\\gl-ms-29\hp LaserJet 1015
打印机7|打印机属性|默认打印机=否
打印机7|打印机属性|共享=hp LaserJet 1015
打印机7|打印机属性|打印机端口=DOT4_001
打印机7|打印机属性|打印机驱动程序=hp LaserJet 1015 (v5.60)
打印机7|打印机属性|设备名称=\\gl-ms-29\hp LaserJet 1015
打印机7|打印机属性|打印处理器=IMFPrint
打印机7|打印机属性|分隔页=无
打印机7|打印机属性|使用率=总是
打印机7|打印机属性|优先级=1
打印机7|打印机属性|打印队列=0
打印机7|打印机属性|状态=未知
打印机7|纸张属性|纸张大小=A4, 210 x 297 mm
打印机7|纸张属性|打印方向=纵向
打印机7|纸张属性|打印质量=600 dpi
打印机7|打印机制造商|公司名称=Hewlett-Packard Company
打印机7|打印机制造商|产品信息=http://www.hp.com/united-states/consumer/gateway/printing_multifunction.html
打印机7|打印机制造商|驱动程序更新=http://www.aida64.com/driver-updates
打印机8|打印机属性|打印机名称=Microsoft XPS Document Writer
打印机8|打印机属性|默认打印机=否
打印机8|打印机属性|共享=未共享
打印机8|打印机属性|打印机端口=XPSPort:
打印机8|打印机属性|打印机驱动程序=Microsoft XPS Document Writer (v6.00)
打印机8|打印机属性|设备名称=Microsoft XPS Document Writer
打印机8|打印机属性|打印处理器=WinPrint
打印机8|打印机属性|分隔页=无
打印机8|打印机属性|使用率=总是
打印机8|打印机属性|优先级=1
打印机8|打印机属性|打印队列=0
打印机8|打印机属性|状态=未知
打印机8|纸张属性|纸张大小=A4, 210 x 297 mm
打印机8|纸张属性|打印方向=纵向
打印机8|纸张属性|打印质量=600 x 600 dpi Color
打印机9|打印机属性|打印机名称=PDF reDirect
打印机9|打印机属性|默认打印机=否
打印机9|打印机属性|共享=未共享
打印机9|打印机属性|打印机端口=PDF_REDIRECT_LE_PORT:
打印机9|打印机属性|打印机驱动程序=PDF reDirect (v5.02)
打印机9|打印机属性|设备名称=PDF reDirect
打印机9|打印机属性|注释=PDF reDirect provided by EXP Systems
打印机9|打印机属性|打印处理器=WinPrint
打印机9|打印机属性|分隔页=无
打印机9|打印机属性|使用率=总是
打印机9|打印机属性|优先级=1
打印机9|打印机属性|打印队列=0
打印机9|打印机属性|状态=未知
打印机9|纸张属性|纸张大小=A4, 210 x 297 mm
打印机9|纸张属性|打印方向=纵向
打印机9|纸张属性|打印质量=300 x 300 dpi Color
有点多。完整文件如下 将你获取的配置文件 Report.ini 和本脚本放在一起#include <ListViewConstants.au3>
Local $Str = FileRead('Report.ini')
Local $Test = StringRegExp($Str, '(.):\h\((.+?)\)\h([^(]+)\h\((.+?)\h可用', 3)
GUICreate('Form1', 623, 449)
$ListView = GUICtrlCreateListView('盘符|可用磁盘|磁盘大小|分区格式', 56, 72, 433, 233)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 70)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 120)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 120)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 120)
For $i = 0 To UBound($Test) - 1 Step 4
GUICtrlCreateListViewItem($Test[$i] & '|' & $Test[$i + 3] & '|' & $Test[$i + 2] & '|' & $Test[$i + 1], $ListView)
Next
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
EndSwitch
WEnd 回复 10# afan
afan哥。。。。。。就这么简单。。。那俺想复杂了- -。。。{:face (319):}。。。哥谢谢您 好東西 值得學習一下
页:
[1]