Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/06/2010, 19:23
Avatar de sanctusbellicosus91
sanctusbellicosus91
 
Fecha de Ingreso: marzo-2010
Mensajes: 23
Antigüedad: 14 años, 1 mes
Puntos: 0
hola necesito que me ayuden encontrar mi error

es programa para cambiar la resolución de la pantalla


clase
_____________________
Imports System.Runtime.InteropServices

Public Class pantalla
Public Const DISP_CHANGE_SUCCESFUL As Integer = 0
Public Const ENUM_CURRENT_SETTINGS As Integer = -1
Public Const ENUM_REGISTRY_SETTINGS As Integer = -2
Public Const CCHDEVICENAME As Integer = 32
Public Const CCHFORNAME As Integer = 32
Public Const DM_BITSPERPEL As Integer = 40000
Public Const DM_PELSDWITH As Integer = 80000
Public Const DM_PELSHEIGHT As Integer = 100000

<StructLayout(LayoutKind.Secuential)>
Public Structure DEVMODE

Public dmdevidename As String
Public dmspecversion As Integer
Public dmdriverversion As Integer
Public dmsize As Integer
Public dmDriveBeta As Integer
Public dmdrivextra As Integer
Public dmfields As Long
Public dmDisplayOrientation As ScreenOrientation
Public dmorientation As Integer
Public dmpapersize As Integer
Public dmpaperlength As Integer
Public dmpaperwidth As Integer
Public dmscale As Integer
Public dmcopies As Integer
Public dmdefaultsource As Integer
Public dmprintquality As Integer
Public dmcolor As Integer
Public dmduplex As Integer
Public dmresolution As Integer
Public dmttoption As Integer
Public dmcollate As Integer
Public dmFormName As String
Public dmunusedpadding As Integer
Public dmbitsperpel As Long
Public dmpelswidth As Long
Public dmpelsheight As Long
Public dmdisplayflags As Long
Public dmdisplayfrequency As Long

End Structure

<DllImport("-user32.dll", charset:=charset.Auto > _
Public Shared Function EnumDislaySettings(ByVal lpszdevicename As Long, _
ByVal imodem As Integer, ByRef ipdevmode As DEVMODE) As Boolean

End Function

End Class


______________________________
from





Public Class Form1

Public resCambio As Boolean
Public resAlto As Integer
Public resAncho As Integer
Public resBits As Integer

Public Structure tRes
Private Alto As Integer
Private Ancho As Integer
Private Bts As Integer
End Structure

pantalla DEVMODE Devmod = new pantalla.DEVMODE();
tResol[]resDisponibles = new tResol [0];
resDisponible (0) As tresol
Int nuevaRes;

Public Structure
void Resolucion()
int i;
bool hay resoluciones;
DevMode.dmSize=(short)MArshall.SizeOf(DevMode);
i=0;
do

hayResolucion = pantalla.EnumDisplaySettings(null,i,DevMode);
i+=1;
if(hayResolucion)

sting s =DevMode.dMPelsWidth.Tostring() + "x" +
DevMode.dmPelsHeight.tostring() + "x" +
DevMode.dmBitsPerpel.tostring() + "Bits";
Ist Resoluciones.Items.Add(&);
array:Resize(resDisponibles, 1);
resDisponibles(i-1).Ancho=DevMode.dmWidth;
resDisponibles(i-1).Alto=DevMode.dmHeight;
resDisponibles(i-1).Bits=DevMode.mdBitsPerpel;

while(hay Resolucion);
End Structure


Sub CambiarRes(ByVal Ancho As Integer, ByVal Alto As Integer, ByVal Bits As Integer)
Dim noCambio As Integer
DevMod.dmSize = CType(Marshal.SizeOf(DevMod), Short)
DevMod.dmFields = pantalla.DM_PELSDWITH Or pantalla.DM_PELSHEIGHT Or pantalla.DM_BITSPERPEL
DevMod.dmPELSDWITH = Ancho
DevMod.dmPELSHEIGHT = Alto
DevMod.dmBITSPERPEL = Bits
If (noCambio = pantalla.ChangeDisplaySettings(DevMod, 0) <> pantalla.DISP_CHANGE_SUCCESFUL) Then MessageBox.Show("Error: " & noCambio.ToString() & "al cambiar la resolucion de pantalla", "Error") Else
resCambio = True
End If



End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
CambiarRes(resDisponibles [nuevaRes].Ancho, resDisponibles [nuevaRes].Alto, resDisponibles [nuevaRes].Bits)
nuevaRes = istResolucion.Selected Index
txtNueva.Text = resDisponibles(nuevaRes).Ancho.Tostring() & " x " &_
resDisponibles(nuevaRes).Alto.Tostring() & " " &_
resDisponibles(nuevaRes).Bits.Tostring() & " Bits "
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click


End Sub

Private Sub chkRestaurar_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkRestaurar.CheckedChanged
If chkRestaurar.Checked And resCambio Then
CambiarRes(resAncho, resAlto, resBits)
End If


End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
CambiarRes(resAncho, resAlto, resBits)
resCambio = False
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
resCambio = False
DevMod.dmSize = Ctype (Marshal.SizeOf(DevMod,short )
pantalla.EnumDisplaySettings(Nothing, ENUM_CURRENT_SETTINGS, DevMode)
resAncho = DevMod.dmWidth
resAlto = DevMod.dmHeight
resBits = DevMod.dmBitsPerPel
txtResolucion.Text = resAncho.ToString() & " x " & resAlto.ToString() & " " & resBits.ToString() & "Bits"
resoluciones()
End Sub
End Class