Attribute VB_Name = "modScreenRes" Option Explicit Private Const BITSPIXEL = 12& Private Const CCDEVICENAME = 32 Private Const CCFORMNAME = 32 Private Const DM_BITSPERPEL = &H40000 Private Const DM_PELSWIDTH = &H80000 Private Const DM_PELSHEIGHT = &H100000 Private Const CDS_TEMP = &H4 Private Type DEVMODE dmDeviceName As String * CCDEVICENAME dmSpecVersion As Integer dmDriverVersion As Integer dmSize As Integer dmDriverExtra As Integer dmFields As Long dmOrientation As Integer dmPaperSize As Integer dmPaperLength As Integer dmPaperWidth As Integer dmScale As Integer dmCopies As Integer dmDefaultSource As Integer dmPrintQuality As Integer dmColor As Integer dmDuplex As Integer dmYResolution As Integer dmTTOption As Integer dmCollate As Integer dmFormName As String * CCFORMNAME dmUnusedPadding As Integer dmBitsPerPel As Integer dmPelsWidth As Long dmPelsHeight As Long dmDisplayFlags As Long dmDisplayFrequency As Long End Type Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Declare Function GetDesktopWindow Lib "User32" () As Long Private Declare Function GetWindowRect Lib "User32" (ByVal hWnd As Long, lpRect As RECT) As Long Private Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long Private Declare Function EnumDisplaySettings Lib "User32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lpDevMode As Any) As Boolean Private Declare Function ChangeDisplaySettings Lib "User32" Alias "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwFlags As Long) As Long Public Sub GetScreenRes(WidthPixels As Long, HeightPixels As Long, BitDepth As Long) Dim vR As RECT Call GetWindowRect(GetDesktopWindow, vR) WidthPixels = vR.Right HeightPixels = vR.Bottom BitDepth = GetDeviceCaps(GetDC(GetDesktopWindow), BITSPIXEL) End Sub Public Function SetScreenRes(ByVal WidthPixels As Long, ByVal HeightPixels As Long, ByVal BitDepth As Long) As Boolean Dim DevM As DEVMODE Call EnumDisplaySettings(0&, 0&, DevM) DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL DevM.dmPelsWidth = WidthPixels DevM.dmPelsHeight = HeightPixels DevM.dmBitsPerPel = BitDepth SetScreenRes = (ChangeDisplaySettings(DevM, CDS_TEMP) = 0) End Function