Hi Dennis;
You can try:
Private Declare Function EnumDisplaySettings Lib "user32" _
Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName& _
, ByVal iModeNum&, lpDevMode As Any) As Boolean
Private Declare Function ChangeDisplaySettings& Lib "user32" _
Alias "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwflags&)
Private Type DEVMODE
dmDeviceName As String * 32
dmSpecVersion%
dmDriverVersion%
dmSize%
dmDriverExtra%
dmFields&
dmOrientation%
dmPaperSize%
dmPaperLength%
dmPaperWidth%
dmScale%
dmCopies%
dmDefaultSource%
dmPrintQuality%
dmColor%
dmDuplex%
dmYResolution%
dmTTOption%
dmCollate%
dmFormName As String * 32
dmUnusedPadding%
dmBitsPerPel%
dmPelsWidth&
dmPelsHeight&
dmDisplayFlags&
dmDisplayFrequency&
End Type
Private Declare Function EnumDisplaySettings Lib "user32" _
Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName& _
, ByVal iModeNum&, lpDevMode As Any) As Boolean
Private Declare Function ChangeDisplaySettings& Lib "user32" _
Alias "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwflags&)
Private Type DEVMODE
dmDeviceName As String * 32
dmSpecVersion%
dmDriverVersion%
dmSize%
dmDriverExtra%
dmFields&
dmOrientation%
dmPaperSize%
dmPaperLength%
dmPaperWidth%
dmScale%
dmCopies%
dmDefaultSource%
dmPrintQuality%
dmColor%
dmDuplex%
dmYResolution%
dmTTOption%
dmCollate%
dmFormName As String * 32
dmUnusedPadding%
dmBitsPerPel%
dmPelsWidth&
dmPelsHeight&
dmDisplayFlags&
dmDisplayFrequency&
End Type
Private Sub ChangeResolution(W As Single, H As Single)
Dim OK As Boolean, i&, DVM As DEVMODE
Do
OK = EnumDisplaySettings(0&, i&, DVM)
i = i + 1
Loop Until OK = False
DVM.dmFields = &H80000 Or &H100000
DVM.dmPelsWidth = W
DVM.dmPelsHeight = H
ChangeDisplaySettings DVM, 0
End Sub
Sub Screen_800X600()
ChangeResolution 800, 600
End Sub
Sub Screen_1024X768()
ChangeResolution 1024, 768
End Sub
MP