Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: e500 en 6 Septiembre 2010, 16:17 pm



Título: [SOLUCIONADO] Reiniciar Aplicación
Publicado por: e500 en 6 Septiembre 2010, 16:17 pm
Hola gente del foro, esta intentando reiniciar mi aplicacion desde una funsion, sin aplicaciones auxiliares.

Pregunto, hay forma de hacerlo?

Saludos


Título: Re: [DUDA] Reiniciar Aplicación
Publicado por: ssccaann43 © en 6 Septiembre 2010, 16:21 pm
Leandro Ascierto publico un modulo para ello...! Buscalo...!


Título: Re: [DUDA] Reiniciar Aplicación
Publicado por: e500 en 6 Septiembre 2010, 16:30 pm
Leandro Ascierto publico un modulo para ello...! Buscalo...!

Bueno, gracias  :) pero no anda su web, me podrias pasar el link.

Y otra cosa, necesito reiniciar mi aplicacion mediante un BOTON, no mediante un ERROR.

Saludos


Título: Re: [DUDA] Reiniciar Aplicación
Publicado por: Petro_Boca en 6 Septiembre 2010, 19:14 pm
Leandro Ascierto publico un modulo para ello...! Buscalo...!

Bueno, gracias  :) pero no anda su web, me podrias pasar el link.

Y otra cosa, necesito reiniciar mi aplicacion mediante un BOTON, no mediante un ERROR.

Saludos

porq no cerras el from y lo volves a abrir :D



Título: Re: [DUDA] Reiniciar Aplicación
Publicado por: Petro_Boca en 6 Septiembre 2010, 19:15 pm
show.fromWAZA!
unload me


Título: Re: [DUDA] Reiniciar Aplicación
Publicado por: e500 en 6 Septiembre 2010, 19:16 pm
Sigo esperando una respuesta...

Saludos


Título: Re: [DUDA] Reiniciar Aplicación
Publicado por: Petro_Boca en 6 Septiembre 2010, 19:35 pm
Sigo esperando una respuesta...

Saludos

¬¬

como ya te dije, cerra el from y volvelo a abrir ;)


Título: Re: [DUDA] Reiniciar Aplicación
Publicado por: _katze_ en 6 Septiembre 2010, 20:03 pm
espera una respuesta coherente !


nose a lo que te refieres bien en si, pero lo que puedes hacer es autoabrirte con una shell (?) seria una opcion y te cerras con el unload me pero antes de cerrar te auto abris !


Título: Re: [DUDA] Reiniciar Aplicación
Publicado por: Petro_Boca en 6 Septiembre 2010, 20:15 pm
espera una respuesta coherente !


nose a lo que te refieres bien en si, pero lo que puedes hacer es autoabrirte con una shell (?) seria una opcion y te cerras con el unload me pero antes de cerrar te auto abris !
show.fromWAZA!
unload me


Título: Re: [DUDA] Reiniciar Aplicación
Publicado por: Petro_Boca en 6 Septiembre 2010, 20:20 pm
Código
  1.  
  2. 'Con esta instruccion cierras el formulario descargandolo de la memoria
  3. Unload me
  4. 'Luego mandas llamar al mismo formulario con la instruccion
  5. Nomform.show
  6.  
  7.  


Título: Re: [DUDA] Reiniciar Aplicación
Publicado por: _katze_ en 6 Septiembre 2010, 20:36 pm
se llega a descargar de memoria !! podrias decir que es un "reinicio"? alguien que conteste !


Título: Re: [DUDA] Reiniciar Aplicación
Publicado por: e500 en 6 Septiembre 2010, 20:38 pm
Código
  1.  
  2. 'Con esta instruccion cierras el formulario descargandolo de la memoria
  3. Unload me
  4. 'Luego mandas llamar al mismo formulario con la instruccion
  5. Nomform.show
  6.  
  7.  

No respondas tantas veces lo mismo, tu code no me sirve en lo absoluto. Reiniciar una App es lo que busco... mediante un commando button.

Saludos


Título: Re: [DUDA] Reiniciar Aplicación
Publicado por: e500 en 6 Septiembre 2010, 20:40 pm
espera una respuesta coherente !

gracias por la aclaracion.

saludos


Título: Re: [DUDA] Reiniciar Aplicación
Publicado por: _katze_ en 6 Septiembre 2010, 20:52 pm
de nada man ! proba lo que te dije asi si llega a descargar de memoria ! y si guardas todo en un archivo ini la configuracion al abrilo mejor ! saludos man


Título: Re: [DUDA] Reiniciar Aplicación
Publicado por: Elemental Code en 6 Septiembre 2010, 23:11 pm
encontre el codigo de leandrito.

Código
  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 armate un form con tres botones y codealo asi:

Código
  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

si queres que sea un boton, o modificas el codigo o metes la pata aproposito en el boton para que se reinicie :D


Título: Re: [DUDA] Reiniciar Aplicación
Publicado por: e500 en 7 Septiembre 2010, 01:15 am
Leandro Ascierto publico un modulo para ello...! Buscalo...!

Bueno, gracias  :) pero no anda su web, me podrias pasar el link.

Y otra cosa, necesito reiniciar mi aplicacion mediante un BOTON, no mediante un ERROR.

Saludos

Lo he visto al code @Elemental Code y no queria q por medio de un error tenga q reiniar la aplicación, sino por medio d eun boton, en modo manual pero desde la aplicacion.

Te agradezco la ayuda, y espero que puedan darme una mano.

Saludos


Título: Re: [DUDA] Reiniciar Aplicación
Publicado por: Dessa en 7 Septiembre 2010, 01:19 am
Mirá si te sirve algo así, solo a modo de idea yá que depende de lo quieras hacer podrias usar CreateMutex o alguna Alternativa a CreateMutex.


Código:

Option Explicit

Private Sub Command1_Click()
  Shell App.Path & "\" & App.EXEName, vbNormalFocus
  End  ' o Unload Me
End Sub

Private Sub Form_Load()
 
  If App.LogMode = 0 Then
    MsgBox "Ejecutar compilado"
    End
  End If
 
  If App.PrevInstance Then
    Me.Caption = "Instancia Auuxiliar"
  Else
    Me.Caption = "Primera instancia"
  End If

End Sub




Saludos

 


Título: Re: [DUDA] Reiniciar Aplicación
Publicado por: e500 en 7 Septiembre 2010, 01:34 am
Al fin!!!! @Dessa Graciass!!!!!!!!!!!!!!!!! eso es lo que quería voy a probar bien y te confirmo :)

Saludos


Título: Re: [SOLUCIONADO] Reiniciar Aplicación
Publicado por: Dessa en 7 Septiembre 2010, 03:20 am
Por nada ( tambien te lo había sugerido _katze_  )

Saludos




Título: Re: [SOLUCIONADO] Reiniciar Aplicación
Publicado por: _katze_ en 7 Septiembre 2010, 05:08 am
Mirá si te sirve algo así, solo a modo de idea yá que depende de lo quieras hacer podrias usar CreateMutex o alguna Alternativa a CreateMutex.


Código:

Option Explicit

Private Sub Command1_Click()
  Shell App.Path & "\" & App.EXEName, vbNormalFocus
  End  ' o Unload Me
End Sub

Private Sub Form_Load()
 
  If App.LogMode = 0 Then
    MsgBox "Ejecutar compilado"
    End
  End If
 
  If App.PrevInstance Then
    Me.Caption = "Instancia Auuxiliar"
  Else
    Me.Caption = "Primera instancia"
  End If

End Sub




Saludos

 


es exactamente lo que te recomende no lo hice al code porque estaba en clases y no puedo hacer mucho desde hay ! bn dessa es justo eso je