Hola gente del foro, esta intentando reiniciar mi aplicacion desde una funsion, sin aplicaciones auxiliares.
Pregunto, hay forma de hacerlo?
Saludos
Leandro Ascierto publico un modulo para ello...! Buscalo...!
Cita de: ssccaann43 en 6 Septiembre 2010, 16:21 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
Cita de: e500 en 6 Septiembre 2010, 16:30 PM
Cita de: ssccaann43 en 6 Septiembre 2010, 16:21 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
show.fromWAZA!
unload me
Sigo esperando una respuesta...
Saludos
Cita de: e500 en 6 Septiembre 2010, 19:16 PM
Sigo esperando una respuesta...
Saludos
¬¬
como ya te dije, cerra el from y volvelo a abrir ;)
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 !
Cita de: _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 !
Cita de: Petro_Boca en 6 Septiembre 2010, 19:15 PM
show.fromWAZA!
unload me
'Con esta instruccion cierras el formulario descargandolo de la memoria
Unload me
'Luego mandas llamar al mismo formulario con la instruccion
Nomform.show
se llega a descargar de memoria !! podrias decir que es un "reinicio"? alguien que conteste !
Cita de: Petro_Boca en 6 Septiembre 2010, 20:20 PM
'Con esta instruccion cierras el formulario descargandolo de la memoria
Unload me
'Luego mandas llamar al mismo formulario con la instruccion
Nomform.show
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
Cita de: _katze_ en 6 Septiembre 2010, 20:03 PM
espera una respuesta coherente !
gracias por la aclaracion.
saludos
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
encontre el codigo de leandrito.
Option Explicit
'Autor: Leandro Ascierto
'Web: www.leandroascierto .com.ar
'Date: 28/12/2009
Private Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
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
Private Declare Function DestroyWindow Lib "user32.dll" (ByVal hwnd As Long) As Long
Private Declare Function SetProp Lib "user32.dll" Alias "SetPropA" (ByVal hwnd As Long, ByVal lpString As String, ByVal hData As Long) As Long
Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
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
Private Declare Sub FatalExit Lib "kernel32" (ByVal code As Long)
Dim hWinStatic As Long
Dim AppPath As String
Dim LastError As Long
Private Function CallSomeFunction()
'No borrar esta linea
End Function
Public Sub StarProtect()
hWinStatic = CreateWindowEx(0, "Static", "WindowControlerCras h", 0, 0, 0, 0, 0, 0, 0, 0, 0&)
AppPath = GetAppPath
SetTimer hWinStatic, 0, 100, AddressOf TimerProc
End Sub
Public Sub EndProtect()
KillTimer hWinStatic, 0
DestroyWindow hWinStatic
End Sub
Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
Dim Ret As String
If Err.Number = 40040 Then
ShellExecute hWinStatic, vbNullString, AppPath, LastError, vbNullString, 1
FatalExit 1
Else
LastError = Err.Number
Ret = CallSomeFunction
End If
End Sub
Private Function GetAppPath() As String
Dim ModuleName As String
Dim Ret As Long
ModuleName = String$(255, Chr$(0))
Ret = GetModuleFileName(App.hInstance, ModuleName, 255)
GetAppPath = Left$(ModuleName, Ret)
End Function
para probarlo armate un form con tres botones y codealo asi:
Option Explicit
Private Sub Form_Load()
If Command$ <> "" Then Me.Caption = "Aplicación Reinciada por error: " & Command$
StarProtect 'comienza la protección
End Sub
Private Sub Form_Unload(Cancel As Integer)
EndProtect 'Detiene la protección
End Sub
Private Sub Command1_Click()
MsgBox 1 / 0 'Error Divición por cero
End Sub
Private Sub Command2_Click()
Dim i As Integer
i = 8000000000000# 'Error Desvordamiento
End Sub
Private Sub Command3_Click()
Dim c As Date
c = "hola" 'Error no coinciden los tipos
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
Cita de: e500 en 6 Septiembre 2010, 16:30 PM
Cita de: ssccaann43 en 6 Septiembre 2010, 16:21 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
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
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.
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
Al fin!!!! @Dessa Graciass!!!!!!!!!!!!!!!!! eso es lo que quería voy a probar bien y te confirmo :)
Saludos
Por nada ( tambien te lo había sugerido _katze_ )
Saludos
Cita de: 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.
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