Sub ChangeRes(X As Long, Y As Long, Bits As Long)
Dim DevM As DEVMODE, ScInfo As Long, erg As Long, an As VbMsgBoxResult
erg = EnumDisplaySettings(0&, 0&, DevM)
DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL
DevM.dmPelsWidth = X
DevM.dmPelsHeight = Y
DevM.dmBitsPerPel = Bits
erg = ChangeDisplaySettings(DevM, CDS_TEST)
Select Case erg&
Case DISP_CHANGE_RESTART
an = MsgBox("Nescesitas Reinicar" & vbNewLine & "Deseas Hacerlo ¿?", vbYesNo + vbSystemModal, "Info")
If an = vbYes Then
erg& = ExitWindowsEx(EWX_REBOOT, 0&)
End If
Case DISP_CHANGE_SUCCESSFUL
erg = ChangeDisplaySettings(DevM, CDS_UPDATEREGISTRY)
ScInfo = Y * 2 ^ 16 + X
'Para Avisar a Todas las Ventanas el Cambio de Resolucion
SendMessage HWND_BROADCAST, WM_DISPLAYCHANGE, ByVal Bits, ByVal ScInfo
Case Else
MsgBox "No se puede cambiar la Resolucion", vbOKOnly + vbSystemModal, "-=RattleHead=-"
End Select
End Sub