pinkfloyd Modérateur
Nombre de messages : 27 Age : 39 Date d'inscription : 04/12/2006
| Sujet: changer la résolution d'écran Lun 8 Jan - 15:20 | |
| Copiez ce code source dans un module. Vous pourrez alors changer la résolution par un simple appel à la procédure ResolutionEcran(). Pour passer par exemple à une résolution de 800 x 600 :
vb
ResolutionEcran 800, 600
vb
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
Private Const CCHDEVICENAME = 32 Private Const CCHFORMNAME = 32 Private Const DM_WIDTH = &H80000 Private Const DM_HEIGHT = &H100000
Private Type DEVMODE dmDeviceName As String * CCHDEVICENAME 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 * CCHFORMNAME dmUnusedPadding As Integer dmBitsPerPel As Integer dmPelsWidth As Long dmPelsHeight As Long dmDisplayFlags As Long dmDisplayFrequency As Long End Type
Public Sub ResolutionEcran(sgWidth As Long, sgHeight As Long)
Dim blTMP As Boolean, lgTMP As Long, dmEcran As DEVMODE, res As Long
lgTMP = 0 Do blTMP = EnumDisplaySettings(0, lgTMP, dmEcran) lgTMP = lgTMP + 1 Loop While blTMP <> 0
dmEcran.dmFields = DM_WIDTH Or DM_HEIGHT dmEcran.dmPelsWidth = sgWidth dmEcran.dmPelsHeight = sgHeight lgTMP = ChangeDisplaySettings(dmEcran, 0)
End Sub
| |
|