Results 1 to 8 of 8

Thread: [RESOLVED] Getting Computer Statistics

  1. #1

    Thread Starter
    Hyperactive Member
    Join Date
    Oct 2005
    Posts
    294

    [RESOLVED] Getting Computer Statistics

    Hi, I am new to VB6 and am looking to get a bunch of statistics of a machine. CPU MHz/Load, RAM MB/Load, Networkcards MB in/MB out etc..
    Last edited by frozen; Oct 28th, 2005 at 06:44 PM. Reason: problem solved

  2. #2
    Fanatic Member Jumpercables's Avatar
    Join Date
    Jul 2005
    Location
    Colorado
    Posts
    592

    Re: Getting Computer Statistics

    I know if you use the default About form it gives the option of displaying all the system information. If you look in that code you might find your answer.

  3. #3
    Ex-Super Mod RobDog888's Avatar
    Join Date
    Apr 2001
    Location
    LA, Calif. Raiders #1 AKA:Gangsta Yoda™
    Posts
    60,709

    Re: Getting Computer Statistics

    This will give you all the details of your processor.
    VB Code:
    1. Option Explicit
    2. 'Add a reference tro MS WMI Scripting Library
    3. Private Sub Command1_Click()
    4.    
    5.     Dim arrComputers() As Variant
    6.     Dim strComputer As Variant
    7.     Dim objWMIService As Object
    8.     Dim colItems As Object
    9.     Dim objItem As Object
    10.     Dim strPowerManagementCapabilities As String
    11.     Dim strProcessor As String
    12.    
    13.     Const wbemFlagReturnImmediately = &H10
    14.     Const wbemFlagForwardOnly = &H20
    15.  
    16.     arrComputers = Array("localhost")
    17.     For Each strComputer In arrComputers
    18.         strProcessor = strProcessor & "Computer: " & strComputer & vbNewLine
    19.         Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
    20.         Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
    21.        
    22.         For Each objItem In colItems
    23.             strProcessor = strProcessor & "AddressWidth: " & objItem.AddressWidth & vbNewLine
    24.             strProcessor = strProcessor & "Architecture: " & objItem.Architecture & vbNewLine
    25.             strProcessor = strProcessor & "Availability: " & objItem.Availability & vbNewLine
    26.             strProcessor = strProcessor & "Caption: " & objItem.Caption & vbNewLine
    27.             strProcessor = strProcessor & "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode & vbNewLine
    28.             strProcessor = strProcessor & "ConfigManagerUserConfig: " & objItem.ConfigManagerUserConfig & vbNewLine
    29.             strProcessor = strProcessor & "CpuStatus: " & objItem.CpuStatus & vbNewLine
    30.             strProcessor = strProcessor & "CreationClassName: " & objItem.CreationClassName & vbNewLine
    31.             strProcessor = strProcessor & "CurrentClockSpeed: " & objItem.CurrentClockSpeed & vbNewLine
    32.             strProcessor = strProcessor & "CurrentVoltage: " & objItem.CurrentVoltage & vbNewLine
    33.             strProcessor = strProcessor & "DataWidth: " & objItem.DataWidth & vbNewLine
    34.             strProcessor = strProcessor & "Description: " & objItem.Description & vbNewLine
    35.             strProcessor = strProcessor & "DeviceID: " & objItem.DeviceID & vbNewLine
    36.             strProcessor = strProcessor & "ErrorCleared: " & objItem.ErrorCleared & vbNewLine
    37.             strProcessor = strProcessor & "ErrorDescription: " & objItem.ErrorDescription & vbNewLine
    38.             strProcessor = strProcessor & "ExtClock: " & objItem.ExtClock & vbNewLine
    39.             strProcessor = strProcessor & "Family: " & objItem.Family & vbNewLine
    40.             strProcessor = strProcessor & "InstallDate: " & objItem.InstallDate & vbNewLine
    41.             strProcessor = strProcessor & "L2CacheSize: " & objItem.L2CacheSize & vbNewLine
    42.             strProcessor = strProcessor & "L2CacheSpeed: " & objItem.L2CacheSpeed & vbNewLine
    43.             strProcessor = strProcessor & "LastErrorCode: " & objItem.LastErrorCode & vbNewLine
    44.             strProcessor = strProcessor & "Level: " & objItem.Level & vbNewLine
    45.             strProcessor = strProcessor & "LoadPercentage: " & objItem.LoadPercentage & vbNewLine
    46.             strProcessor = strProcessor & "Manufacturer: " & objItem.Manufacturer & vbNewLine
    47.             strProcessor = strProcessor & "MaxClockSpeed: " & objItem.MaxClockSpeed & vbNewLine
    48.             strProcessor = strProcessor & "Name: " & objItem.Name & vbNewLine
    49.             strProcessor = strProcessor & "OtherFamilyDescription: " & objItem.OtherFamilyDescription & vbNewLine
    50.             strProcessor = strProcessor & "PNPDeviceID: " & objItem.PNPDeviceID & vbNewLine
    51.             strProcessor = strProcessor & "PowerManagementCapabilities: " & objItem.PowerManagementCapabilities & vbNewLine
    52.             strProcessor = strProcessor & "PowerManagementSupported: " & objItem.PowerManagementSupported & vbNewLine
    53.             strProcessor = strProcessor & "ProcessorId: " & objItem.ProcessorId & vbNewLine
    54.             strProcessor = strProcessor & "ProcessorType: " & objItem.ProcessorType & vbNewLine
    55.             strProcessor = strProcessor & "Revision: " & objItem.Revision & vbNewLine
    56.             strProcessor = strProcessor & "Role: " & objItem.Role & vbNewLine
    57.             strProcessor = strProcessor & "SocketDesignation: " & objItem.SocketDesignation & vbNewLine
    58.             strProcessor = strProcessor & "Status: " & objItem.Status & vbNewLine
    59.             strProcessor = strProcessor & "StatusInfo: " & objItem.StatusInfo & vbNewLine
    60.             strProcessor = strProcessor & "Stepping: " & objItem.Stepping & vbNewLine
    61.             strProcessor = strProcessor & "SystemCreationClassName: " & objItem.SystemCreationClassName & vbNewLine
    62.             strProcessor = strProcessor & "SystemName: " & objItem.SystemName & vbNewLine
    63.             strProcessor = strProcessor & "UniqueId: " & objItem.UniqueId & vbNewLine
    64.             strProcessor = strProcessor & "UpgradeMethod: " & objItem.UpgradeMethod & vbNewLine
    65.             strProcessor = strProcessor & "Version: " & objItem.Version & vbNewLine
    66.             strProcessor = strProcessor & "VoltageCaps: " & objItem.VoltageCaps & vbNewLine
    67.             MsgBox strProcessor
    68.         Next
    69.     Next
    70.    
    71. End Sub
    VB/Office Guru™ (AKA: Gangsta Yoda®)
    I dont answer coding questions via PM. Please post a thread in the appropriate forum.

    Microsoft MVP 2006-2011
    Office Development FAQ (C#, VB.NET, VB 6, VBA)
    Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
    If a post has helped you then Please Rate it!
    Reps & Rating PostsVS.NET on Vista Multiple .NET Framework Versions Office Primary Interop AssembliesVB/Office Guru™ Word SpellChecker™.NETVB/Office Guru™ Word SpellChecker™ VB6VB.NET Attributes Ex.Outlook Global Address ListAPI Viewer utility.NET API Viewer Utility
    System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6

  4. #4
    Fanatic Member Comintern's Avatar
    Join Date
    Nov 2004
    Location
    Lincoln, NE
    Posts
    826

    Re: Getting Computer Statistics

    I think the "About" form thing just shells Sysinfo. The 2 best ways I've found to gather system information are Windows Management Instrumentation and the GetSystemInfo API call.

    GetSystemInfo getting processor type:
    VB Code:
    1. Option Explicit
    2.  
    3. Private Declare Sub GetSystemInfo Lib "kernel32" (lpSystemInfo As SYSTEM_INFO)
    4.  
    5. Private Type SYSTEM_INFO
    6.     dwOemID As Long
    7.     dwPageSize As Long
    8.     lpMinimumApplicationAddress As Long
    9.     lpMaximumApplicationAddress As Long
    10.     dwActiveProcessorMask As Long
    11.     dwNumberOrfProcessors As Long
    12.     dwProcessorType As Long
    13.     dwAllocationGranularity As Long
    14.     dwReserved As Long
    15. End Type
    16.  
    17. Const C_MEGABYTE = 8388608
    18.  
    19. Private Sub ProcessorType()
    20.    
    21.     Dim uSysInfo As SYSTEM_INFO
    22.     Dim lProcType As Long
    23.     Dim sOut As String
    24.  
    25.     GetSystemInfo uSysInfo
    26.    
    27.     lProcType = uSysInfo.dwProcessorType
    28.    
    29.     sOut = "Processor Type:" & vbCrLf & CStr(lProcType)
    30.     MsgBox (sOut)
    31.  
    32. End Sub

    WMI example for getting all retrievable disk serial numbers:

    VB Code:
    1. Private Sub DiskSerials()
    2.    
    3.     Dim oList As Object
    4.     Dim sOut As String
    5.     Dim oObject As Object
    6.  
    7.     Set oList = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_LogicalDisk")
    8.  
    9.     For Each oObject In oList
    10.         sOut = sOut & "Disk Serial Number: " & oObject.VolumeSerialNumber & vbCrLf
    11.     Next oObject
    12.    
    13.     MsgBox (sOut)
    14.    
    15.     Set oList = Nothing
    16.     Set oObject = Nothing
    17.  
    18. End Sub

    Read about WMI here: http://msdn.microsoft.com/library/de..._reference.asp

    EDIT: Sorry 'bout the overpost RobDog. You caught me fixing the formatting in my vbcode tags. For some reason I can't cut and paste out of my IDE and have the code tags make it look right anymore.
    Last edited by Comintern; Oct 27th, 2005 at 10:12 PM. Reason: See edit

  5. #5
    Ex-Super Mod RobDog888's Avatar
    Join Date
    Apr 2001
    Location
    LA, Calif. Raiders #1 AKA:Gangsta Yoda™
    Posts
    60,709

    Re: Getting Computer Statistics

    Download Scriptomatic2 from the Scripting Guy (Microsoft) and you can automatically generate WMI scripts similar to the code I posted. You have to convert it to VB but its not that hard.

    Scriptomatic2
    VB/Office Guru™ (AKA: Gangsta Yoda®)
    I dont answer coding questions via PM. Please post a thread in the appropriate forum.

    Microsoft MVP 2006-2011
    Office Development FAQ (C#, VB.NET, VB 6, VBA)
    Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
    If a post has helped you then Please Rate it!
    Reps & Rating PostsVS.NET on Vista Multiple .NET Framework Versions Office Primary Interop AssembliesVB/Office Guru™ Word SpellChecker™.NETVB/Office Guru™ Word SpellChecker™ VB6VB.NET Attributes Ex.Outlook Global Address ListAPI Viewer utility.NET API Viewer Utility
    System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6

  6. #6
    Banned dglienna's Avatar
    Join Date
    Jun 2004
    Location
    Center of it all
    Posts
    17,901

    Re: Getting Computer Statistics

    Or computer info in general.
    This script was produced by ScriptoMatic2, which is a free download.
    There are a lot of different scripts that it will generate, based on the information that you need. I just use cscript to display the information. If you just rename it as a vbs file, it will show the info in messageboxes.

    VB Code:
    1. On Error Resume Next
    2.  
    3. Const wbemFlagReturnImmediately = &h10
    4. Const wbemFlagForwardOnly = &h20
    5.  
    6. arrComputers = Array("127.0.0.1")
    7. For Each strComputer In arrComputers
    8.    WScript.Echo
    9.    WScript.Echo "=========================================="
    10.    WScript.Echo "Computer: " & strComputer
    11.    WScript.Echo "=========================================="
    12.  
    13.    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
    14.    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", _
    15.                                           wbemFlagReturnImmediately + wbemFlagForwardOnly)
    16.  
    17.    For Each objItem In colItems
    18.       WScript.Echo "AdminPasswordStatus: " & objItem.AdminPasswordStatus
    19.       WScript.Echo "AutomaticResetBootOption: " & objItem.AutomaticResetBootOption
    20.       WScript.Echo "AutomaticResetCapability: " & objItem.AutomaticResetCapability
    21.       WScript.Echo "BootOptionOnLimit: " & objItem.BootOptionOnLimit
    22.       WScript.Echo "BootOptionOnWatchDog: " & objItem.BootOptionOnWatchDog
    23.       WScript.Echo "BootROMSupported: " & objItem.BootROMSupported
    24.       WScript.Echo "BootupState: " & objItem.BootupState
    25.       WScript.Echo "Caption: " & objItem.Caption
    26.       WScript.Echo "ChassisBootupState: " & objItem.ChassisBootupState
    27.       WScript.Echo "CreationClassName: " & objItem.CreationClassName
    28.       WScript.Echo "CurrentTimeZone: " & objItem.CurrentTimeZone
    29.       WScript.Echo "DaylightInEffect: " & objItem.DaylightInEffect
    30.       WScript.Echo "Description: " & objItem.Description
    31.       WScript.Echo "Domain: " & objItem.Domain
    32.       WScript.Echo "DomainRole: " & objItem.DomainRole
    33.       WScript.Echo "EnableDaylightSavingsTime: " & objItem.EnableDaylightSavingsTime
    34.       WScript.Echo "FrontPanelResetStatus: " & objItem.FrontPanelResetStatus
    35.       WScript.Echo "InfraredSupported: " & objItem.InfraredSupported
    36.       strInitialLoadInfo = Join(objItem.InitialLoadInfo, ",")
    37.          WScript.Echo "InitialLoadInfo: " & strInitialLoadInfo
    38.       WScript.Echo "InstallDate: " & WMIDateStringToDate(objItem.InstallDate)
    39.       WScript.Echo "KeyboardPasswordStatus: " & objItem.KeyboardPasswordStatus
    40.       WScript.Echo "LastLoadInfo: " & objItem.LastLoadInfo
    41.       WScript.Echo "Manufacturer: " & objItem.Manufacturer
    42.       WScript.Echo "Model: " & objItem.Model
    43.       WScript.Echo "Name: " & objItem.Name
    44.       WScript.Echo "NameFormat: " & objItem.NameFormat
    45.       WScript.Echo "NetworkServerModeEnabled: " & objItem.NetworkServerModeEnabled
    46.       WScript.Echo "NumberOfProcessors: " & objItem.NumberOfProcessors
    47.       strOEMLogoBitmap = Join(objItem.OEMLogoBitmap, ",")
    48.          WScript.Echo "OEMLogoBitmap: " & strOEMLogoBitmap
    49.       strOEMStringArray = Join(objItem.OEMStringArray, ",")
    50.          WScript.Echo "OEMStringArray: " & strOEMStringArray
    51.       WScript.Echo "PartOfDomain: " & objItem.PartOfDomain
    52.       WScript.Echo "PauseAfterReset: " & objItem.PauseAfterReset
    53.       strPowerManagementCapabilities = Join(objItem.PowerManagementCapabilities, ",")
    54.          WScript.Echo "PowerManagementCapabilities: " & strPowerManagementCapabilities
    55.       WScript.Echo "PowerManagementSupported: " & objItem.PowerManagementSupported
    56.       WScript.Echo "PowerOnPasswordStatus: " & objItem.PowerOnPasswordStatus
    57.       WScript.Echo "PowerState: " & objItem.PowerState
    58.       WScript.Echo "PowerSupplyState: " & objItem.PowerSupplyState
    59.       WScript.Echo "PrimaryOwnerContact: " & objItem.PrimaryOwnerContact
    60.       WScript.Echo "PrimaryOwnerName: " & objItem.PrimaryOwnerName
    61.       WScript.Echo "ResetCapability: " & objItem.ResetCapability
    62.       WScript.Echo "ResetCount: " & objItem.ResetCount
    63.       WScript.Echo "ResetLimit: " & objItem.ResetLimit
    64.       strRoles = Join(objItem.Roles, ",")
    65.          WScript.Echo "Roles: " & strRoles
    66.       WScript.Echo "Status: " & objItem.Status
    67.       strSupportContactDescription = Join(objItem.SupportContactDescription, ",")
    68.          WScript.Echo "SupportContactDescription: " & strSupportContactDescription
    69.       WScript.Echo "SystemStartupDelay: " & objItem.SystemStartupDelay
    70.       strSystemStartupOptions = Join(objItem.SystemStartupOptions, ",")
    71.          WScript.Echo "SystemStartupOptions: " & strSystemStartupOptions
    72.       WScript.Echo "SystemStartupSetting: " & objItem.SystemStartupSetting
    73.       WScript.Echo "SystemType: " & objItem.SystemType
    74.       WScript.Echo "ThermalState: " & objItem.ThermalState
    75.       WScript.Echo "TotalPhysicalMemory: " & objItem.TotalPhysicalMemory
    76.       WScript.Echo "UserName: " & objItem.UserName
    77.       WScript.Echo "WakeUpType: " & objItem.WakeUpType
    78.       WScript.Echo "Workgroup: " & objItem.Workgroup
    79.       WScript.Echo
    80.    Next
    81. Next
    82.  
    83.  
    84. Function WMIDateStringToDate(dtmDate)
    85. WScript.Echo dtm:
    86.     WMIDateStringToDate = CDate(Mid(dtmDate, 5, 2) & "/" & _
    87.     Mid(dtmDate, 7, 2) & "/" & Left(dtmDate, 4) _
    88.     & " " & Mid (dtmDate, 9, 2) & ":" & Mid(dtmDate, 11, 2) & ":" & Mid(dtmDate,13, 2))
    89. End Function

  7. #7

    Thread Starter
    Hyperactive Member
    Join Date
    Oct 2005
    Posts
    294

    Re: Getting Computer Statistics

    Wow I don't think I have gotten this many replys before on a forum, nice to finnaly find a good one. Scriptomatic it turning out to be a very usefull tool thank you all!

  8. #8

    Thread Starter
    Hyperactive Member
    Join Date
    Oct 2005
    Posts
    294

    Re: [RESOLVED] Getting Computer Statistics

    \root\CIMV2\Win32_NetworkAdapter don't have a sent/recv'd option for the connections.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width