RE:Cambiar resolución de pantalla
Para usar la funcion CHANGEDISPLAYSETTINGS veras que el API necesecita una estructura Tipo de DEVMODE, esta estrutura tiene variables que tienes que llenar, lo mas probable es que no te funcione por que no las has llenado, para llenarlas usas un API
Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" _
(ByVal lpszDeviceName As Long, ByVal iModeNum As Long, _
lpDevMode As Any) As Boolean
Luego en alguna parte del codigo antes de ejecutar CHANGEDISPLAYSETTINGS colocas
a = EnumDisplaySettings(0&, i&, DevM)
DevM es la estructura "Dim DevM As DEVMODE"
Cuando ejecutas esta funcion las variables de las estructura ya toman sus valores correspondiente luego para cambiar la resolucion, solamente cambias las siguientes variables de la estructura:
DevM.dmPelsWidth = 800 ´ Ancho
DevM.dmPelsHeight = 600 ´ Alto
DevM.dmBitsPerPel = 16 ´ Color 16 bit
y luego ejecutas
Resultado = ChangeDisplaySettings(DevM, 0)
y ahora te deberia de funcionar.....
Cualquier cosa me avisas...
Atte
Eduardo