comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Reiniciar la aplicacion ante un error (by leandro A.)

  • 0 Respuestas
  • 1340 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« en: Enero 26, 2013, 03:02:22 am »
bueno este es uno de los codes muy buenos que tiene leandro Ascierto.

Código: Visual Basic
  1. Option Explicit
  2. 'Autor: Leandro Ascierto
  3. 'Web:   www.leandroascierto .com.ar
  4. 'Date:  28/12/2009
  5. Private Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
  6. Private Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
  7. Private Declare Function CreateWindowEx Lib "user32.dll" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, ByRef lpParam As Any) As Long
  8. Private Declare Function DestroyWindow Lib "user32.dll" (ByVal hwnd As Long) As Long
  9. Private Declare Function SetProp Lib "user32.dll" Alias "SetPropA" (ByVal hwnd As Long, ByVal lpString As String, ByVal hData As Long) As Long
  10. Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
  11. Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
  12. Private Declare Sub FatalExit Lib "kernel32" (ByVal code As Long)
  13.  
  14. Dim hWinStatic As Long
  15. Dim AppPath As String
  16. Dim LastError As Long
  17.  
  18. Private Function CallSomeFunction()
  19.     'No borrar esta linea
  20. End Function
  21.  
  22. Public Sub StarProtect()
  23.     hWinStatic = CreateWindowEx(0, "Static", "WindowControlerCras h", 0, 0, 0, 0, 0, 0, 0, 0, 0&)
  24.     AppPath = GetAppPath
  25.     SetTimer hWinStatic, 0, 100, AddressOf TimerProc
  26. End Sub
  27.  
  28. Public Sub EndProtect()
  29.     KillTimer hWinStatic, 0
  30.     DestroyWindow hWinStatic
  31. End Sub
  32.  
  33. Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
  34.     Dim Ret As String
  35.    
  36.     If Err.Number = 40040 Then
  37.         ShellExecute hWinStatic, vbNullString, AppPath, LastError, vbNullString, 1
  38.         FatalExit 1
  39.     Else
  40.         LastError = Err.Number
  41.         Ret = CallSomeFunction
  42.     End If
  43.    
  44. End Sub
  45.  
  46. Private Function GetAppPath() As String
  47.     Dim ModuleName As String
  48.     Dim Ret As Long
  49.     ModuleName = String$(255, Chr$(0))
  50.     Ret = GetModuleFileName(App.hInstance, ModuleName, 255)
  51.     GetAppPath = Left$(ModuleName, Ret)
  52. End Function

Para probarlo en un formulario con Tres botones

Código: Visual Basic
  1. Option Explicit
  2.  
  3. Private Sub Form_Load()
  4.     If Command$ <> "" Then Me.Caption = "Aplicación Reinciada por error: " & Command$
  5.     StarProtect 'comienza la protección
  6. End Sub
  7.  
  8. Private Sub Form_Unload(Cancel As Integer)
  9.     EndProtect 'Detiene la protección
  10. End Sub
  11.  
  12.  
  13. Private Sub Command1_Click()
  14.     MsgBox 1 / 0 'Error Divición por cero
  15. End Sub
  16.  
  17. Private Sub Command2_Click()
  18.     Dim i As Integer
  19.     i = 8000000000000# 'Error Desvordamiento
  20. End Sub
  21.  
  22. Private Sub Command3_Click()
  23.     Dim c As Date
  24.     c = "hola" 'Error no coinciden los tipos
  25. End Sub


Lo compilan y verán que al producir un error la aplicacion se reinicia.

Fuente: You are not allowed to view links. Register or Login

saludos, espero que les sirva.
« Última modificación: Mayo 12, 2014, 03:37:16 pm por Expermicid »

 

¿Te gustó el post? COMPARTILO!



Aplicacion cliente servidor control Winsock (MSWINSCK.OCX)

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1153
Último mensaje Julio 26, 2010, 12:20:55 pm
por ANTRAX
Saber desde que directorio se ejecuta mi aplicación

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1341
Último mensaje Julio 26, 2010, 10:22:17 am
por ANTRAX
Colocar el icono de la aplicacion en el systray

Iniciado por ANTRAX

Respuestas: 1
Vistas: 1568
Último mensaje Julio 26, 2010, 12:20:09 pm
por _katze_
Como apagar, reiniciar o salir del sistema

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1476
Último mensaje Julio 26, 2010, 11:24:30 am
por ANTRAX
Apagar el equipo, reiniciar Windows, reiniciar el Sistema

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1343
Último mensaje Julio 26, 2010, 10:31:47 am
por ANTRAX