Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Visual Basic clásico (http://www.forosdelweb.com/f69/)
-   -   Cambiar la resolucion de la pantalla (http://www.forosdelweb.com/f69/cambiar-resolucion-pantalla-272991/)

robertonavarro 21/02/2005 21:54

Cambiar la resolucion de la pantalla
 
Hola, me gustaria saber como averiguar la resolucion que tiene la pantalla a la hora de ejecutarse un programa, asi como la forma de cambiarla desde Vb.

GRACIAS.

vbx3m 22/02/2005 06:54

Resolucion
 
En un modulo colocas:

Public Declare Function EnumDisplaySettings Lib "user32.dll" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lpDevMode As Any) As Boolean
Public Declare Function ChangeDisplaySettings Lib "user32.dll" Alias "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwFlags As Long) As Long
Public Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

Public Const CCDEVICENAME = 32
Public Const CCFORMNAME = 32
Public Const DM_PELSWIDTH = &H80000
Public Const DM_PELSHEIGHT = &H100000

Public Type DEVMODE
dmDeviceName As String * CCDEVICENAME
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 * CCFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type

Public DevChg As DEVMODE

Public Sub ChangeRes(iWidth As Single, iHeight As Single)
Dim a As Boolean
Dim I&
I = 0
Do
a = EnumDisplaySettings(0&, I&, DevChg)
I = I + 1
Loop Until (a = False)
Dim b&
DevChg.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
DevChg.dmPelsWidth = iWidth
DevChg.dmPelsHeight = iHeight
b = ChangeDisplaySettings(DevChg, 0)
End Sub

Y en el formulario:

Public Sub CheckRes()
Dim X As Long, Y As Long
Dim MsgTitle As String
Dim MsgStyle As Long
Dim msg As String
Dim MsgResponse As Long
Y = GetSystemMetrics(0)
X = GetSystemMetrics(1)
If "" & Y & "x" & X <> "1024x768" Then 'Aqui es donde comparas la resolucion
MsgBox "La resolución de su monitor es " & Y & "x" & X & "
Call ChangeRes(1024, 768) 'Aqui asignas la resolucion que quieres
End If
End Sub

Pruebalo... :arriba:

tz.ware 08/03/2005 00:49

ami no me funciona :-( (alomejor lo estoy poniendo mal, voy a re-revisar)

vbx3m 08/03/2005 08:19

Resolucion
 
Te acordaste de hacer el llamado a Changeres y a CheckRes?... :arriba:


La zona horaria es GMT -6. Ahora son las 09:01.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.