elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Evitar cierre de formulario vb6
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Evitar cierre de formulario vb6  (Leído 4,370 veces)
Buggcon

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Evitar cierre de formulario vb6
« en: 7 Abril 2013, 04:28 am »

Hola amig@s sucede que tengo una aplicacion en vb6.
Se ejecuta en segundo plano
Ahora cuando se produce un error este se cierra

¿Hay algo para evitar que se cierre por un error?
Es decir que solo ignore el error. Gracias


En línea

$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Evitar cierre de formulario vb6
« Respuesta #1 en: 7 Abril 2013, 15:03 pm »

Aprende a buscar en google un poco que se encuentran las cosas mas rapido que preguntando.

Tienes que usar "On error goto ..." para que cuando haya un error vaya a donde quieras y luego en ese "donde quieras" pones "Variable = 1" que esa variable sera global y asi en el Form_Unload() pondras "if Variable = 1 then Cancel = 1" y ahi se cancela el bloqueo.

Aunque creo que dependera de que tipo es el error, si es muy grave no creo que puedas hacer algo.


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Evitar cierre de formulario vb6
« Respuesta #2 en: 8 Abril 2013, 04:18 am »

Ahora cuando se produce un error este se cierra
¿Hay algo para evitar que se cierre por un error?

No somos magos, podrías empezar por detallar el error, mostrando una imagen o copiando el error completo, así sería más fácil.





Si quieres ignorar complétamente TODOS los errores, aparte de controlar la excepción, creo que sería suficiente con desactivar el debugger de Windows.

U otra forma es mandar todas las excepciones no controladas a un método, para controlarlas allí o símplemente para ignorarlas ante el debugger (para que no te aparezca el dialogo de error):

EDITO: No te quiero confundir mucho, esto es código de VB.NET, no manejo VB6 y no me hago una idea de como trasladarlo, eso se lo dejo a $Edu$ xD, en lugar del Try usa un "on error goto" vacío, yo te doy la idea, el código funciona ;) :

Código
  1. Public Class Form1
  2.  
  3.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  4.        Try
  5.            AddHandler Application.ThreadException, AddressOf Application_ExHandler
  6.            Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException, False)
  7.        Catch : End Try
  8.    End Sub
  9.  
  10.    Private Sub Application_ExHandler(ByVal sender As Object, ByVal e As System.Threading.ThreadExceptionEventArgs)
  11.        ' Aquí controlas las excepciones.
  12.        ' Dim ex As Exception = CType(e.Exception, Exception)
  13.        ' MsgBox(ex.Message)
  14.        ' O lo dejas vacio para ignorarlas.
  15.    End Sub
  16.  
  17.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  18.        IO.File.OpenText("X:\Fail.txt")
  19.    End Sub
  20.  
  21. End Class

http://msdn.microsoft.com/en-us/library/system.windows.forms.application.setunhandledexceptionmode.aspx

PD: El contenido del form load lo deberías meter en el Main tanto en una app de consola como en una GUI, porque lo conveniente es usarlo antes de que se cree cualquier control del form. Aunque con un simple "Try/on error goto" como en el ejemplo lo solucionas también.

Saludos.
« Última modificación: 8 Abril 2013, 04:50 am por EleKtro H@cker » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines