引言
紧跟之前的学习历程发现两个脚本,这两个脚本的相识程度很高,后来发现都是调用WMI类实现的,下面放出来供大家学习参考。一个事调用Win32_ComputerSystem,另一个调用Win32_OperatingSystem,大家直接运行下面的脚本就能看到本机的很多信息。不用我多说,获取本机信息是很多应用的基本能力。
代码展示
/* Autohotkey_L WMI (Computer system details) */ strComputer := "." objWMIService := ComObjGet("winmgmts:{impersonationLevel=impersonate}!\\" . strComputer . "\root\cimv2") colSettings := objWMIService.ExecQuery("Select * from Win32_ComputerSystem")._NewEnum While colSettings[strCSItem] { MsgBox % "AdminPasswordStatus: " . strCSItem.AdminPasswordStatus . "`nAutomaticResetBootOption: " . strCSItem.AutomaticResetBootOption . "`nAutomaticResetCapability: " . strCSItem.AutomaticResetCapability . "`nBootROMSupported: " . strCSItem.BootROMSupported . "`nBootupState: " . strCSItem.BootupState . "`nCaption: " . strCSItem.Caption . "`nChassisBootupState: " . strCSItem.ChassisBootupState . "`nCurrentTimeZone: " . strCSItem.CurrentTimeZone . "`nDaylightInEffect: " . strCSItem.DaylightInEffect . "`nDescription: " . strCSItem.Description . "`nDomain: " . strCSItem.Domain . "`nDomainRole: " . strCSItem.DomainRole . "`nEnableDaylightSavingsTime: " . strCSItem.EnableDaylightSavingsTime . "`nFrontPanelResetStatus: " . strCSItem.FrontPanelResetStatus . "`nInfraredSupported: " . strCSItem.InfraredSupported . "`nKeyboardPasswordStatus: " . strCSItem.KeyboardPasswordStatus . "`nManufacturer: " . strCSItem.Manufacturer . "`nModel: " . strCSItem.Model . "`nName: " . strCSItem.Name . "`nNetworkServerModeEnabled: " . strCSItem.NetworkServerModeEnabled . "`nNumberOfLogicalProcessors: " . strCSItem.NumberOfLogicalProcessors . "`nNumberOfProcessors: " . strCSItem.NumberOfProcessors . "`nOEMStringArray: " . strCSItem.OEMStringArray . "`nPartOfDomain: " . strCSItem.PartOfDomain . "`nPauseAfterReset: " . strCSItem.PauseAfterReset . "`nPowerOnPasswordStatus: " . strCSItem.PowerOnPasswordStatus . "`nPowerState: " . strCSItem.PowerState . "`nPowerSupplyState: " . strCSItem.PowerSupplyState . "`nPrimaryOwnerContact: " . strCSItem.PrimaryOwnerContact . "`nPrimaryOwnerName: " . strCSItem.PrimaryOwnerName . "`nResetCapability: " . strCSItem.ResetCapability . "`nResetCount: " . strCSItem.ResetCount . "`nResetLimit: " . strCSItem.ResetLimit . "`nRoles: " . strCSItem.Roles . "`nStatus: " . strCSItem.Status . "`nSupportContactDescription: " . strCSItem.SupportContactDescription . "`nSystemStartupDelay: " . strCSItem.SystemStartupDelay . "`nSystemStartupOptions: " . strCSItem.SystemStartupOptions . "`nSystemStartupSetting: " . strCSItem.SystemStartupSetting . "`nSystemType: " . strCSItem.SystemType . "`nThermalState: " . strCSItem.ThermalState . "`nUserName: " . strCSItem.UserName . "`nWakeUpType: " . strCSItem.WakeUpType . "`nWorkgroup: " . strCSItem.Workgroup }
/* Autohotkey_L WMI (Operating system details and free physical memory) */ strComputer := "." objWMIService := ComObjGet("winmgmts:{impersonationLevel=impersonate}!\\" . strComputer . "\root\cimv2") colSettings := objWMIService.ExecQuery("Select * from Win32_OperatingSystem")._NewEnum While colSettings[objOSItem] { MsgBox % "Build Number: " . objOSItem.BuildNumber . "`nBuild Type: " . objOSItem.BuildType . "`nCaption: " . objOSItem.Caption . "`nCountryCode: " . objOSItem.CountryCode . "`nCreationClassName: " . objOSItem.CreationClassName . "`nCSDVersion: " . objOSItem.CSDVersion . "`nCSName: " . objOSItem.CSName . "`nCurrentTimeZone: " . objOSItem.CurrentTimeZone . "`nDistributed: " . objOSItem.Distributed . "`nEncryptionLevel: " . objOSItem.EncryptionLevel . "`nFreePhysicalMemory: " . objOSItem.FreePhysicalMemory . "`nFreeSpaceInPagingFiles: " . objOSItem.FreeSpaceInPagingFiles . "`nFreeVirtualMemory: " . objOSItem.FreeVirtualMemory . "`nInstallDate: " . objOSItem.InstallDate . "`nLargeSystemCache: " . objOSItem.LargeSystemCache . "`nLastBootUpTime: " . objOSItem.LastBootUpTime . "`nLocalDateTime: " . objOSItem.LocalDateTime . "`nLocale: " . objOSItem.Locale . "`nManufacturer: " . objOSItem.Manufacturer . "`nMaxNumberOfProcesses: " . objOSItem.MaxNumberOfProcesses . "`nMaxProcessMemorySize: " . objOSItem.MaxProcessMemorySize . "`nName: " . objOSItem.Name . "`nNumberOfLicensedUsers: " . objOSItem.NumberOfLicensedUsers . "`nNumberOfProcesses: " . objOSItem.NumberOfProcesses . "`nNumberOfUsers: " . objOSItem.NumberOfUsers . "`nOrganization: " . objOSItem.Organization . "`nOSLanguage: " . objOSItem.OSLanguage . "`nOSType: " . objOSItem.OSType . "`nPrimary: " . objOSItem.Primary . "`nProductType: " . objOSItem.ProductType . "`nRegisteredUser: " . objOSItem.RegisteredUser . "`nSerialNumber: " . objOSItem.SerialNumber . "`nServicePackMajorVersion: " . objOSItem.ServicePackMajorVersion . "`nServicePackMinorVersion: " . objOSItem.ServicePackMinorVersion . "`nSizeStoredInPagingFiles: " . objOSItem.SizeStoredInPagingFiles . "`nStatus: " . objOSItem.Status . "`nSuiteMask: " . objOSItem.SuiteMask . "`nSystemDevice: " . objOSItem.SystemDevice . "`nSystemDirectory: " . objOSItem.SystemDirectory . "`nSystemDrive: " . objOSItem.SystemDrive . "`nTotalSwapSpaceSize: " . objOSItem.TotalSwapSpaceSize . "`nTotalVirtualMemorySize: " . objOSItem.TotalVirtualMemorySize . "`nTotalVisibleMemorySize: " . objOSItem.TotalVisibleMemorySize . "`nVersion: " . objOSItem.Version . "`nWindowsDirectory: " . objOSItem.WindowsDirectory }
拓展
WMI下有众多WIN32的子类,欢迎大家研究分享,期待大家的留言和指导!给出一个地址供大家去查看一下。
https://msdn.microsoft.com/en-us/library/windows/desktop/aa394239(v=vs.85).aspx
?