| McNeel Wiki | |||||
| edit · print · help · all topics | |||||
Main Pages
Languages
| SummaryThere may be an occasion where you might find it useful to save information about your system's video card to a text file, such as when you are encountering display problems with Rhino. You could then send this text file to tech@mcneel.com, along with a detailed description of what you are seeing, to get assistance in diagnosing your problem. The following sample script demonstrates this. If you want to run the following script, just download it here. To run the .rvb script, just extract it from the zip file onto your desktop, then drag it on top of Rhino and drop it. Then follow the on-screen instructions, which are to find the file RhinoVideoInfo.txt on your desktop and attach it to an email to tech@mcneel.com along with a description of the problem you are having. Also, screenshots of any screen problems help.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' SaveVideoInfo.rvb -- April 2008
' If this code works, it was written by Dale Fugier.
' If not, I don't know who wrote it.
' Works with Rhino 4.0.
Option Explicit
Sub SaveVideoInfo()
Dim objShell, objNetwork, objFSO, objFolder, objStream
Dim strDesktop, strFile, strName, strMsg
Set objShell = CreateObject("WScript.Shell")
Set objNetwork = CreateObject("WScript.Network")
Set objFSO = CreateObject("Scripting.FileSystemObject")
strName = "RhinoVideoInfo.txt"
strDesktop = objShell.SpecialFolders("Desktop")
strFile = strDeskTop & "\" & strName
On Error Resume Next
Set objStream = objFSO.CreateTextFile(strFile, True)
If Err Then
MsgBox Err.Description
Exit Sub
End If
objStream.WriteLine "**************************************************"
objStream.WriteLine "Rhino Video Info"
objStream.WriteLine ""
objStream.WriteLine "Computer Name = " & objNetwork.ComputerName
objStream.WriteLine "Date and Time = " & CStr(Now)
objStream.WriteLine "Rhino Build Date = " & CStr(Rhino.BuildDate)
objStream.WriteLine "Rhino SDK Version = " & CStr(Rhino.SdkVersion)
objStream.WriteLine "**************************************************"
objStream.WriteLine ""
Call DisplayConfiguration(objStream)
Call VideoAdapterInformation(objStream)
Call VideoControllerProperties(objStream)
Call MonitorProperties(objStream)
' Uncomment the following line if you want the report to include
' all possible video card resolutions.
' Call VideoResolutions(objStream)
objStream.Close
strMsg = "A file named " & Chr(34) & strName & Chr(34) & VbCrLf
strMsg = strMsg & "has been saved to your desktop." & VbCrLf & VbCrLf
strMsg = strMsg & "If you are experiencing problems with Rhino," & VbCrLf
strMsg = strMsg & "email this file to " & Chr(34) & "tech@mcneel.com" & Chr(34) & VbCrLf
strMsg = strMsg & "along with a detailed description" & VbCrLf
strMsg = strMsg & "of your problem."
MsgBox strMsg, 64, "Rhinoceros"
End Sub
' Returns a list of all the possible video display resolutions.
Sub VideoResolutions(ByRef objStream)
Dim strComputer, objWMIService, colItems, objItem
objStream.WriteLine "**************************************************"
objStream.WriteLine "Video Resolutions"
objStream.WriteLine "**************************************************"
objStream.WriteLine ""
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery ("Select * from CIM_VideoControllerResolution")
For Each objItem In colItems
objStream.WriteLine "Horizontal Resolution: " & objItem.HorizontalResolution
objStream.WriteLine "Number Of Colors: " & objItem.NumberOfColors
objStream.WriteLine "Refresh Rate: " & objItem.RefreshRate
objStream.WriteLine "Scan Mode: " & objItem.ScanMode
objStream.WriteLine "Setting ID: " & objItem.SettingID
objStream.WriteLine "Vertical Resolution: " & objItem.VerticalResolution
objStream.WriteLine ""
Next
End Sub
' Returns information about the current display settings.
Sub DisplayConfiguration(ByRef objStream)
Dim strComputer, objWMIService, colItems, objItem
objStream.WriteLine "**************************************************"
objStream.WriteLine "Display Configuration"
objStream.WriteLine "**************************************************"
objStream.WriteLine ""
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery ("Select * from Win32_DisplayConfiguration")
For Each objItem In colItems
objStream.WriteLine "Bits Per Pel: " & objItem.BitsPerPel
objStream.WriteLine "Device Name: " & objItem.DeviceName
objStream.WriteLine "Display Flags: " & objItem.DisplayFlags
objStream.WriteLine "Display Frequency: " & objItem.DisplayFrequency
objStream.WriteLine "Driver Version: " & objItem.DriverVersion
objStream.WriteLine "Log Pixels: " & objItem.LogPixels
objStream.WriteLine "Pels Height: " & objItem.PelsHeight
objStream.WriteLine "Pels Width: " & objItem.PelsWidth
objStream.WriteLine "Setting ID: " & objItem.SettingID
objStream.WriteLine "Specification Version: " & objItem.SpecificationVersion
objStream.WriteLine ""
Next
End Sub
' Returns information about the desktop monitor.
Sub MonitorProperties(ByRef objStream)
Dim strComputer, objWMIService, colItems, objItem
objStream.WriteLine "**************************************************"
objStream.WriteLine "Monitor Properties"
objStream.WriteLine "**************************************************"
objStream.WriteLine ""
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_DesktopMonitor")
For Each objItem In colItems
objStream.WriteLine "Availability: " & objItem.Availability
objStream.WriteLine "Bandwidth: " & objItem.Bandwidth
objStream.WriteLine "Description: " & objItem.Description
objStream.WriteLine "Device ID: " & objItem.DeviceID
objStream.WriteLine "Display Type: " & objItem.DisplayType
objStream.WriteLine "Is Locked: " & objItem.IsLocked
objStream.WriteLine "Monitor Manufacturer: " & objItem.MonitorManufacturer
objStream.WriteLine "Monitor Type: " & objItem.MonitorType
objStream.WriteLine "Name: " & objItem.Name
objStream.WriteLine "Pixels Per X Logical Inch: " & objItem.PixelsPerXLogicalInch
objStream.WriteLine "Pixels Per Y Logical Inch: " & objItem.PixelsPerYLogicalInch
objStream.WriteLine "PNP Device ID: " & objItem.PNPDeviceID
objStream.WriteLine "Screen Height: " & objItem.ScreenHeight
objStream.WriteLine "Screen Width: " & objItem.ScreenWidth
objStream.WriteLine ""
Next
End Sub
' Returns information about the video adapters.
Sub VideoAdapterInformation(ByRef objStream)
Dim strComputer, objWMIService, colItems, objItem
objStream.WriteLine "**************************************************"
objStream.WriteLine "Video Adapter Information"
objStream.WriteLine "**************************************************"
objStream.WriteLine ""
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery ("Select * from Win32_DisplayControllerConfiguration")
For Each objItem In colItems
objStream.WriteLine "Bits Per Pixel: " & objItem.BitsPerPixel
objStream.WriteLine "Color Planes: " & objItem.ColorPlanes
objStream.WriteLine "Device Entries in a Color Table: " & objItem.DeviceEntriesInAColorTable
objStream.WriteLine "Device Specific Pens: " & objItem.DeviceSpecificPens
objStream.WriteLine "Horizontal Resolution: " & objItem.HorizontalResolution
objStream.WriteLine "Name: " & objItem.Name
objStream.WriteLine "Refresh Rate: " & objItem.RefreshRate
objStream.WriteLine "Setting ID: " & objItem.SettingID
objStream.WriteLine "Vertical Resolution: " & objItem.VerticalResolution
objStream.WriteLine "Video Mode: " & objItem.VideoMode
objStream.WriteLine ""
Next
End Sub
' Retrieves information about the video controller.
Sub VideoControllerProperties(ByRef objStream)
Dim strComputer, objWMIService, colItems, objItem, strCapability
objStream.WriteLine "**************************************************"
objStream.WriteLine "Video Controller Properties"
objStream.WriteLine "**************************************************"
objStream.WriteLine ""
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery ("Select * from Win32_VideoController")
For Each objItem In colItems
For Each strCapability In objItem.AcceleratorCapabilities
objStream.WriteLine "Accelerator Capability: " & strCapability
Next
objStream.WriteLine "Adapter Compatibility: " & objItem.AdapterCompatibility
objStream.WriteLine "Adapter DAC Type: " & objItem.AdapterDACType
objStream.WriteLine "Adapter RAM: " & objItem.AdapterRAM
objStream.WriteLine "Availability: " & objItem.Availability
objStream.WriteLine "Color Table Entries: " & objItem.ColorTableEntries
objStream.WriteLine "Current Bits Per Pixel: " & objItem.CurrentBitsPerPixel
objStream.WriteLine "Current Horizontal Resolution: " & objItem.CurrentHorizontalResolution
objStream.WriteLine "Current Number of Colors: " & objItem.CurrentNumberOfColors
objStream.WriteLine "Current Number of Columns: " & objItem.CurrentNumberOfColumns
objStream.WriteLine "Current Number of Rows: " & objItem.CurrentNumberOfRows
objStream.WriteLine "Current Refresh Rate: " & objItem.CurrentRefreshRate
objStream.WriteLine "Current Scan Mode: " & objItem.CurrentScanMode
objStream.WriteLine "Current Vertical Resolution: " & objItem.CurrentVerticalResolution
objStream.WriteLine "Description: " & objItem.Description
objStream.WriteLine "Device ID: " & objItem.DeviceID
objStream.WriteLine "Device Specific Pens: " & objItem.DeviceSpecificPens
objStream.WriteLine "Dither Type: " & objItem.DitherType
objStream.WriteLine "Driver Date: " & objItem.DriverDate
objStream.WriteLine "Driver Version: " & objItem.DriverVersion
objStream.WriteLine "ICM Intent: " & objItem.ICMIntent
objStream.WriteLine "ICM Method: " & objItem.ICMMethod
objStream.WriteLine "INF Filename: " & objItem.InfFilename
objStream.WriteLine "INF Section: " & objItem.InfSection
objStream.WriteLine "Installed Display Drivers: " & objItem.InstalledDisplayDrivers
objStream.WriteLine "Maximum Memory Supported: " & objItem.MaxMemorySupported
objStream.WriteLine "Maximum Number Controlled: " & objItem.MaxNumberControlled
objStream.WriteLine "Maximum Refresh Rate: " & objItem.MaxRefreshRate
objStream.WriteLine "Minimum Refresh Rate: " & objItem.MinRefreshRate
objStream.WriteLine "Monochrome: " & objItem.Monochrome
objStream.WriteLine "Name: " & objItem.Name
objStream.WriteLine "Number of Color Planes: " & objItem.NumberOfColorPlanes
objStream.WriteLine "Number of Video Pages: " & objItem.NumberOfVideoPages
objStream.WriteLine "PNP Device ID: " & objItem.PNPDeviceID
objStream.WriteLine "Reserved System Palette Entries: " & objItem.ReservedSystemPaletteEntries
objStream.WriteLine "Specification Version: " & objItem.SpecificationVersion
objStream.WriteLine "System Palette Entries: " & objItem.SystemPaletteEntries
objStream.WriteLine "Video Architecture: " & objItem.VideoArchitecture
objStream.WriteLine "Video Memory Type: " & objItem.VideoMemoryType
objStream.WriteLine "Video Mode: " & objItem.VideoMode
objStream.WriteLine "Video Mode Description: " & objItem.VideoModeDescription
objStream.WriteLine "Video Processor: " & objItem.VideoProcessor
objStream.WriteLine ""
Next
End Sub
' Rhino.AddStartUpScript Rhino.LastLoadedScriptFile
' Rhino.AddAlias "SavePlugInList", "_-RunScript (SaveVideoInfo)"
' Run it!
Call SaveVideoInfo
| ||||
| rename · changes · history · subscriptions · lost and found · references · file upload | |||||