Alguien que me explique esto?

13/01/2005 - 23:20 por Ch0rY | Informe spam
Lineas de codigo y explicación al final del mensaje.

-
Error que da
-
Consulte el final de este mensaje para obtener más detalles sobre cómo
llamar a la depuración
Just-In-Time (JIT) en lugar de a este cuadro de diálogo.

************** Texto de la excepción **************
System.NullReferenceException: Referencia a objeto no establecida como
instancia de un objeto.
at Chory_Bingo.frm_GeneraDVD.Automatico_Tick(Object sender, EventArgs
e) in C:\Documents and Settings\USUARIO\Mis documentos\Proyectos de
Visual Studio\Bingo Para DVD\frm_GeneraDVD.vb:line 600
at System.Windows.Forms.Timer.OnTick(EventArgs e)
at System.Windows.Forms.Timer.DebuggableCallback(IntPtr hWnd, Int32
msg, IntPtr idEvent, IntPtr dwTime)


************** Ensamblados cargados **************
mscorlib
Versión del ensamblado: 1.0.3300.0
Versión Win32: 1.0.3705.0
Código base:
file:///c:/windows/microsoft.net/framework/v1.0.3705/mscorlib.dll
-
BinCho
Versión del ensamblado: 1.0.1839.40919
Versión Win32: 1.0.1839.40919
Código base: file:///C:/Documents%20and%20Settings/USUARIO/Mis%
20documentos/Proyectos%20de%20Visual%20Studio/Bingo%20Para%
20DVD/bin/BinCho.exe
-
Microsoft.VisualBasic
Versión del ensamblado: 7.0.3300.0
Versión Win32: 7.00.9466
Código base:
file:///c:/windows/assembly/gac/microsoft.visualbasic/7.0.3300.0
__b03f5f7f11d50a3a/microsoft.visualbasic.dll
-
System.Windows.Forms
Versión del ensamblado: 1.0.3300.0
Versión Win32: 1.0.3705.0
Código base:
file:///c:/windows/assembly/gac/system.windows.forms/1.0.3300.0
__b77a5c561934e089/system.windows.forms.dll
-
System
Versión del ensamblado: 1.0.3300.0
Versión Win32: 1.0.3705.0
Código base: file:///c:/windows/assembly/gac/system/1.0.3300.0
__b77a5c561934e089/system.dll
-
System.Drawing
Versión del ensamblado: 1.0.3300.0
Versión Win32: 1.0.3705.0
Código base:
file:///c:/windows/assembly/gac/system.drawing/1.0.3300.0
__b03f5f7f11d50a3a/system.drawing.dll
-
Accessibility
Versión del ensamblado: 1.0.3300.0
Versión Win32: 1.0.3705.0
Código base: file:///c:/windows/assembly/gac/accessibility/1.0.3300.0
__b03f5f7f11d50a3a/accessibility.dll
-
Microsoft.VisualBasic.resources
Versión del ensamblado: 7.0.3300.0
Versión Win32: 7.0.3300.0
Código base:
file:///c:/windows/assembly/gac/microsoft.visualbasic.resources/7.0.3300.
0_es_b03f5f7f11d50a3a/microsoft.visualbasic.resources.dll
-
mscorlib.resources
Versión del ensamblado: 1.0.3300.0
Versión Win32: 1.0.3300.0
Código base:
file:///c:/windows/assembly/gac/mscorlib.resources/1.0.3300.0
_es_b77a5c561934e089/mscorlib.resources.dll
-
SYSTEM.WINDOWS.FORMS.resources
Versión del ensamblado: 1.0.3300.0
Versión Win32: 1.0.3300.0
Código base:
file:///c:/windows/assembly/gac/system.windows.forms.resources/1.0.3300.0
_es_b77a5c561934e089/system.windows.forms.resources.dll
-

************** Depuración Just-In-Time **************
Para habilitar la depuración Just In Time (JIT), el archivo de
configuración de esta
aplicación o equipo (machine.config) debe tener el
valor jitDebugging establecido en la sección system.windows.forms
section.
La aplicación también se debe compilar con la depuración habilitada
Por ejemplo:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
Cuando esté habilitada la depuración JIT, cualquier excepción no
controlada
se enviará al depurador JIT registrado en el equipo
en lugar de controlarlo mediante el cuadro de diálogo.

-
Codigo
-

600 GetWindowCapture.Save(Ruta & "imagenes\Capturas\" & Vez & "\" &
Format(BolaEnJuego, "00") & ".jpg")
...
...
...

' Esta funcion esta sacada de la web www.ELGUILLE.info
Public Function GetWindowCapture() As Image

Dim objClipboard As IDataObject

Dim objTecla As SendKeys ' variable que guarda la pulsación de la
tecla
' envía la pulsación de la tecla especificada (Impr Pant)
objTecla.SendWait("%{PRTSC}") ' 1 pulsación de Alt + Impr Pant para
capturar la ventana activa
'objTecla.SendWait("{PRTSC 2}") ' 2 pulsaciones de Impr Pant para
capturar la pantalla entera

objClipboard = Clipboard.GetDataObject() ' portapapeles
' devolver el portapapeles como mapa de bits
Return objClipboard.GetData(DataFormats.Bitmap)

End Function

-
Explicacion del error
-
El programa genera jugadas de Bingo, con sus bolas y eso, y x cada
bola q sale, captura la ventana activa y la guarda en un archivo en el
disco duro, asi hasta q acaba la jugada, total 92 archivos.

Todo va bien, en la primera jugada, pero con la segunda guarda unas
pantallas 8 o 9 y me da ese error.

Y si cuando da el error, salgo de la aplicacion, y vuelvo a entrar
otravez, me da de nuevo el error a la 85 u 86 captura.

Alguien puede decirme xq?

He pensado que puede ser una sobrecarga de memoria, pero no se xq podria
ser.

Gracias

Preguntas similare

Leer las respuestas

#6 Pedro Luna Montalvo, MVP
15/01/2005 - 16:05 | Informe spam
Como bien indico Eduardo, es probable que las operaciones provoquen que el
Clipboard se quede sin contenido, y sospecho que es debido a que el Timer no
lo detienes, por lo que tendras en algun momento colision de operaciones, es
decir, que mientras uno intenta leer del Clipboard, ya ha ocurrido
nuevamente el Tick del Timer y lo modifica.

Prueba esto en el metodo manejador del Tick del Timer:

Private Sub ManejadorEventTickDelTimer(.)
Me.Timer1.Stop() ' o Me.Timer1.Enabled = False, no se que tipo de Timer
utilizas

...proceso normal.

Me.Timer1.Start() ' o Me.Timer1.Enabled = True
End Sub



Saludos
Pedro Luna, [MVP VB.NET]
Gye, Ecu

"Ch0rY" escribió en el mensaje
news:
La llamada a la funcion, re sealiza dentro de un control timer, podria ser
que el interval estubiera demasiado bajo?

Voy a probar si es eso.

gracias

"Eduardo A. Morcillo [MS MVP VB]" <emorcilloATmvps.org> wrote in
news:#IZUr1o#:

> Como estas usando el clipboard es posible que en algun momento la
> aplicacion no pueda acceder a el y entonces no se retorne su
> contenido. Verifica si es eso lo que ocurre.
>

Respuesta Responder a este mensaje
#7 Ch0rY
29/01/2005 - 20:04 | Informe spam
Puedo confirmar que es un problema de sobrecarga en la memoria, pues
reiniciando el ordenador, vuelve a funcionar, hasta que pasa algun tiempo.

Como puedo liberar toda la memoria usada?

chory
Respuesta Responder a este mensaje
#8 news.microsoft.com
31/01/2005 - 21:22 | Informe spam
Chory:

En vez de usar una funcion que devuelva un objeto imagen y por ende
genere una imagen por cada vez que se entra a la funcion, pone la imagen
como una variable y anda actualizandola cada vez que llames a la funcion y
que la misma solo retorne verdadero o falso de acuerdo a si la pudo
actualizar o no. Esta es una falencia del garbage collector que hace que los
resultados de funciones que generan objetos (como por ejemplo una imagen) no
se liberen de memoria si la funcion esta siendo usada. (eso es lo que tengo
entendido y lo que he podido comprobar yo), probalo y me contas como te fue.

Con eso optimizas el uso de la memoria y no te debería ocurrir el
problema.

Un abrazo y espero haberte ayudado.

Alvarez Arigós Roberto Miguel
Analista Superior de Sistemas

"Ch0rY" escribió en el mensaje
news:
Puedo confirmar que es un problema de sobrecarga en la memoria, pues
reiniciando el ordenador, vuelve a funcionar, hasta que pasa algun tiempo.

Como puedo liberar toda la memoria usada?

chory
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida