Visual Basic para Aplicaciones - Detectar resolución de pantalla

Life is soft - evento anual de software empresarial
 
Vista:

Detectar resolución de pantalla

Publicado por Tadiar (16 intervenciones) el 29/04/2002 18:30:14
Hola a tod@s.
Vereis tengo que buscar solución a este problema, tengo una aplicación que al arrancar me pone una foto de fondo en mi formulario principal, en principio esta a 800 X 600 y cuando el ordenador que se instala esta a esa resolución todo es perfecto, pero necesito que al arrancar mi aplicación me detecte a que resolución esta la pantalla y si esta por ejemplo a 1024 X 768 me ponga otra foto que tengo a esa resolución y si esta a 800 X 600 me ponga la que tiene actualmente.
Gracias por vuestra ayuda.

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Detectar resolución de pantalla

Publicado por Mauricio Baeza (262 intervenciones) el 29/04/2002 19:10:54
Tienes que usar API

Private Declare Function GetDeviceCaps Lib "gdi32" _
(ByVal hdc As Long, ByVal nIndex As Long) As Long

Private Sub Command1_Click()
Dim Ancho As Long
Dim Alto As Long

Ancho = GetDeviceCaps(Form1.hdc, 8)
Alto = GetDeviceCaps(Form1.hdc, 10)

MsgBox Ancho & " " & Alto

End Sub

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Detectar resolución de pantalla

Publicado por jlcastro (23 intervenciones) el 29/04/2002 19:19:23
Prueba con esto:

Calcular la profundidad de color (bits por pixel) y resolución de Windows:

Crear un formulario y un TextBox y escribir:

Private Declare Function GetDeviceCaps Lib "gdi32"
(ByVal hdc As Long, ByVal nIndex As Long) As Long

Private Sub Form_Load()
Dim col, bit, largo, alto As Integer
col = GetDeviceCaps(Form1.hdc, 12)
If col = 1 Then
bit = GetDeviceCaps(Form1.hdc, 14)
If bit = 1 Then
Text1.Text = "Resolucion de 1 bit / 2 colores"
ElseIf bit = 4 Then
Text1.Text = "Resolucion de 4 bits / 16 colores"
End If
ElseIf col = 8 Then
Text1.Text = "Resolucion de 8 bits / 256 colores"
ElseIf col = 16 Then
Text1.Text = "Resolucion de 16 bits / 65000 colores"
Else
Text1.Text = "Resolucion de 16 M colores"
End If
largo = GetDeviceCaps(Form1.hdc, 8)
alto = GetDeviceCaps(Form1.hdc, 10)
Text1.Text = Text1.Text & " " & largo & "x" & alto & " pixels"
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar