Red de conocimiento informático - Conocimiento informático - Cómo cambiar la resolución del escritorio a través de vb

Cómo cambiar la resolución del escritorio a través de vb

Módulo:

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