Ændring af skærmopløsning
Hej alle. Jeg prøver på at ændre brugerens skærmopløsning, og jeg er kommet frem til denne kode:Module Module1
Sub Main()
ChangeRes(1024, 768)
End Sub
Private Const CCDEVICENAME = 32
Private Const CCFORMNAME = 32
Private Const DM_PELSWIDTH = &H80000
Private Const DM_PELSHEIGHT = &H100000
Private Declare Function EnumDisplaySettings Lib "user32" _
Alias "EnumDisplaySettingsA" _
(ByVal lpszDeviceName As Long, _
ByVal iModeNum As Long, _
ByVal lpDevMode As Object) As Boolean
Private Declare Function ChangeDisplaySettings Lib "user32" _
Alias "ChangeDisplaySettingsA" _
(ByVal lpDevMode As Object, _
ByVal dwflags As Long) As Long
Private Structure DEVMODE
Public dmDeviceName As String '* CCDEVICENAME
Public dmSpecVersion As Integer
Public dmDriverVersion As Integer
Public dmSize As Integer
Public dmDriverExtra As Integer
Public dmFields As Long
Public dmOrientation As Integer
Public dmPaperSize As Integer
Public dmPaperLength As Integer
Public dmPaperWidth As Integer
Public dmScale As Integer
Public dmCopies As Integer
Public dmDefaultSource As Integer
Public dmPrintQuality As Integer
Public dmColor As Integer
Public dmDuplex As Integer
Public dmYResolution As Integer
Public dmTTOption As Integer
Public dmCollate As Integer
Public dmFormName As String '* CCFORMNAME
Public dmUnusedPadding As Integer
Public dmBitsPerPel As Integer
Public dmPelsWidth As Long
Public dmPelsHeight As Long
Public dmDisplayFlags As Long
Public dmDisplayFrequency As Long
End Structure
Private Sub ChangeRes(ByVal iWidth As Single, ByVal iHeight As Single)
Dim blnWorked As Boolean
Dim i As Long
Dim DevM As DEVMODE
i = 0
Do
blnWorked = EnumDisplaySettings(0&, i, DevM)
i = i + 1
Loop Until (blnWorked = False)
With DevM
.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
.dmPelsWidth = iWidth
.dmPelsHeight = iHeight
End With
Call ChangeDisplaySettings(DevM, 0)
End Sub
End Module
Men den brokker sig over denne del:
Do
blnWorked = EnumDisplaySettings(0&, i, DevM)
i = i + 1
Loop Until (blnWorked = False)
Gør jeg noget galt? Er der en indbygget funktion til at ændre opløsning?
Mvh Mark
--
www.improve.dk
