Cómo cambiar la resolución del escritorio a través de vb
Declarar función EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName siempre, ByVal iModeNum como ByVal lpszDeviceName siempre, ByVal iModeNum como cualquiera) como booleano
Declarar función ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" (lpDevMode como cualquiera, ByVal dwFlags, ByVal dwFlags, ByVal dwFlags, ByVal dwFlags) ByVal dwFlags As Long) Mientras
Declarar función ExitWindowsEx Lib "user32 " (ByVal uFlags mientras, ByVal dwReserved mientras) Mientras
Const pública EWX_LOGOFF = 0
Const pública EWX_SHUTDOWN = 1
Const pública EWX_REBOOT = 2
Const pública EWX_FORCE = 4
Const pública CCDEVICENAME = 32
Const pública CCFORMNAME = 32
Const pública DM_BITSPERPEL = &
Const pública DM_PELSWIDTH = & H80000
Const pública DM_PELSHEIGHT = &H100000
Const pública CDS_UPDATEREGISTRY = &H1
Const pública CDS_TEST = & H4
Const pública DISP_CHANGE_SUCCESSFUL = 0
Const pública DISP_CHANGE_RESTART = 1
Escriba DEVMODE
dmDeviceName como cadena * CCDEVICENAME
dmSpecVersion como entero
dmDriverVersion como entero
dmSize como entero
dmDriverExtra como entero
dmFields como Long
dmOrientation como entero
dmPaperSize como entero
dmPaperLength como entero
dmPaperWidth como entero
dmScale como entero
dmCopies como entero
dmDefaultSource como entero
dmPrintQuality como entero
dmColor como int
eger
dmDuplex como entero
dmYResolution como entero
dmTTOption como entero
dmCollate como entero
dmFormName AsString * CCFORMNAME
dmUnusedPadding como entero
dmBitsPerPel como entero
dmPelsWidth como largo
dmPelsHeight como largo
dmDisplayFlags Tan largo
dmDisplayFrequency Tan largo
Tipo de fin
Código de formulario:
Subcomando privado1_Click()
Dim DevM As DEVMODE
erg& = EnumDisplaySettings(0&, 0&, DevM)
DevM.dmFields = DM_PELSWIDTH o DM_PELSHEIGHT
DevM.dmPelsWidth = 1152 'Ancho de pantalla '
DevM.dmPelsHeight = 864 'Alto de pantalla'
'DevM.dmBitsPerPel = 32 (también puede ser 8, 16, 32 o incluso 4)
erg& = ChangeDisplaySettings(DevM, CDS_TEST) 'Comprueba si se realizó correctamente
Selecciona caso erg&
Case DISP_CHANGE_RESTART
an = MsgBox("Tienes que reiniciar el sistema ahora para realizar el ?"), vbYesNo + vbSystemModal, "información")
Si an = vbYes Then erg& = ExitWindowsEx(EWX_REBOOT, 0&)
Caso DISP_CHANGE_SUCCESSFUL
erg& = ChangeDisplaySettings(DevM, CDS_UPDATEREGISTRY)
MsgBox "¡Todo está bien! "
Case Else
MsgBox "Modo de visualización no compatible", vbOKOnly + vbSystemModal, "Error"
End Select
End Sub >
Private Sub Command2_Click()
Atenuar DevM como DEVMODE
erg&= EnumDisplaySettings(0&, 0&, DevM)
DevM .dmFields = DM_ PELSWIDTH o DM_PELSHEIGHT
DevM.dmPelsWidth = 1280 'Ancho de pantalla'
DevM.dmPelsHeight = 1024 'Alto de pantalla'
'DevM.32 O incluso 4)
erg& = ChangeDisplay
Configuración(DevM, CDS_TEST) 'Compruebe si se realizó correctamente
Seleccione Case erg&
Case DISP_CHANGE_RESTART
an = MsgBox("¿Tiene que reiniciar el sistema ahora? realizar?"), vbYesNo + vbSystemModal, "información")
Si an = vbYes Entonces erg& = ExitWindowsEx(EWX_REBOOT, 0&)
Caso DISP_CHANGE_SUCCESSFUL
erg& = ChangeDisplaySettings(DevM, CDS_UPDATEREGISTRY)
MsgBox "¡Todo está bien!" vbOKOnly + vbSystemModal, "Éxito"
Case Else
MsgBox "Modo de visualización no compatible " , vbOKOnly + vbSystemModal, "Error"
Finalizar selección
Finalizar sub