Foros del Web » Programación para mayores de 30 ;) » Programación General »

Reiniciar Programa

Estas en el tema de Reiniciar Programa en el foro de Programación General en Foros del Web. Hola Amigos Estoy haciendo un Programa el cual necesito que un Boton Reinicie el Programa Es decir. Que se cierre el Programa y que se ...
  #1 (permalink)  
Antiguo 01/10/2004, 15:40
 
Fecha de Ingreso: septiembre-2003
Ubicación: Santo Domingo - R. Dominicana
Mensajes: 606
Antigüedad: 20 años, 7 meses
Puntos: 0
Reiniciar Programa

Hola Amigos

Estoy haciendo un Programa el cual necesito que un Boton Reinicie el Programa Es decir.

Que se cierre el Programa y que se abra solo al instante.

Como lo hago. . .

Saludos
  #2 (permalink)  
Antiguo 01/10/2004, 23:51
 
Fecha de Ingreso: diciembre-2001
Ubicación: Morelia, México.
Mensajes: 312
Antigüedad: 22 años, 4 meses
Puntos: 0
Una forma simple es la siguiente, tu FORM principal digamos que se llama PRINCIPAL, vas a crear un FORM que se llame REINICIO. En el momento en el que querés reiniciar le das así desde el PRINCIPAL:

Unload Me
Reinicio.Show


Y cuando abre la ventana de Reinicio le vas a dar en el Form_Load()

Unload Me
Principal.Show


No lo he probado, pero si te reinicia el programa, es como si se cargara por vez primera.

Nos vemos, suerte!!
  #3 (permalink)  
Antiguo 02/10/2004, 06:56
 
Fecha de Ingreso: septiembre-2003
Ubicación: Santo Domingo - R. Dominicana
Mensajes: 606
Antigüedad: 20 años, 7 meses
Puntos: 0
Hola Amigo

Bueno, he provado el Codigo y todo bien pero me tira un Error cuando se Reinicia y es el Siguiente:

Error "364" en tiempo de Ejecución
Se ha descargado el objeto


Y si le doy a Depurar me marca en Amarillo el siguiente Codigo: frmReinicio.Show

Lo mismo cuando registro el Programa que pongo bien el Serial. Me entra al Programa pero me tira el Mismo Error:

Error "364" en tiempo de Ejecución
Se ha descargado el objeto


Y si le doy a Depurar me marca en Amarillo el siguiente Codigo: frmRegistroSistema.Show

Espero que me Aydes a ver como Resolvemos esto.

Adios
  #4 (permalink)  
Antiguo 02/10/2004, 16:03
 
Fecha de Ingreso: diciembre-2001
Ubicación: Morelia, México.
Mensajes: 312
Antigüedad: 22 años, 4 meses
Puntos: 0
Ya se en donde está el problema, lo que pasa es que estamos poniendo el Unload Me dentro del Form_Load y no se puede ejecutrar puesto que el Form no se ha terminado de descargar. Por tanto te sugiero colocar un Timer, y que transcurrido una fracción de segundo cierre la ventana pequeña, de esta forma le das chance de que se cargue por completo el Form para luego cerrarlo. En el timer podrías el:

Unload Me
frmRegistroSistema.Show

Suponiendo que esto te arroja al Form principal

Nos vemos!!
  #5 (permalink)  
Antiguo 02/10/2004, 16:08
 
Fecha de Ingreso: septiembre-2003
Ubicación: Santo Domingo - R. Dominicana
Mensajes: 606
Antigüedad: 20 años, 7 meses
Puntos: 0
Hola Amigo

Mira yo hice en el FrmReiniciar lo siguiente

Private Sub Form_Load()
ProgressBar1.Value = 0 'Setting the prgbar's value to 0
Timer1.Enabled = True 'Starting timer & its codes
End Sub

Private Sub Timer1_Timer()
ProgressBar1.Value = ProgressBar1.Value + 2 'Every 100ms, prgbar.value adds 2 to it
Label3.Caption = Val(Label3.Caption) + 1

If ProgressBar1.Value >= 100 Then 'If the prgbar value excedes or equals 100
'then stop the timer and enable the start button, so user can click again
Label3.Caption = "100"
Timer1.Enabled = False
Unload Me
frmRegistroSistema.Show

End If

End Sub


Es decir una barra de procceso y todo funciona bien, ejemplo si pongo el serial mal me vuelve a enviar al FormRegistroSistema pero si me registro FrmReiniciar me lleva nuevamente a frmregistroSistema y frmregistroSistema me lleva a frmmain todo asta ahí bien, pero creeo que tengo mal el codigo de Redireccional frmregistroSistama a frmain pues me tira el Error.

Esta compuesto fmRegistrarSistema así:

Private Declare Function GetVolumeInformation& Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal pVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize 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 Sub cmdRegistrarme_Click()
Unload Me
frmReinicio.Show
Unload Me
End Sub

Private Sub Form_Load()
Dim cad1 As String * 256
Dim cad2 As String * 256
Dim numSerie As Long
Dim longitud As Long
Dim flag As Long
unidad = "C:\"
Call GetVolumeInformation(unidad, cad1, 256, numSerie, longitud, flag, cad2, 256)
Primera.Caption = numSerie
Reg1.Text = GetSetting(App.Title, Me.Name, Reg1.Name, vbChecked)
Reg2.Text = GetSetting(App.Title, Me.Name, Reg2.Name, vbChecked)
Reg3.Text = GetSetting(App.Title, Me.Name, Reg3.Name, vbChecked)
If (Val(Reg1.Text) = (numSerie + 896576537)) And (Val(Reg2.Text) = (numSerie + 167235485)) And (Val(Reg3.Text) = (numSerie + 349824653)) Then
Unload Me
frmMain.Show
Else
MsgBox "Aplicación no Registrada en su Computador"
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
SaveSetting App.Title, Me.Name, Me.Reg1.Name, Me.Reg1.Text
SaveSetting App.Title, Me.Name, Me.Reg2.Name, Me.Reg2.Text
SaveSetting App.Title, Me.Name, Me.Reg3.Name, Me.Reg3.Text
End Sub

Private Sub cmdSalir_Click()
Unload Me
End Sub

Private Sub cmdEnviar_Click()
SendMail "[email protected]", "Código de Activación (FacturaZax)", _
"Estimado Departamento de Sopote: A Continuación le envío el Código de Activación para el Programa FacturaZax. "

End Sub

Private Sub SendMail( _
ByVal sDest As String, _
ByVal sSubject As String, _
ByVal sBody As String)

Dim sMsg As String

'***************************
'Esto solía funcionar
'**********************
'sMsg = "mailto:" & sDest & _
"?subject=" & sSubject & _
"&attach=" & """c:\archivo.ext""" & _
"&body=" & sBody

sMsg = "mailto:" & sDest & _
"?subject=" & sSubject & _
"&body=" & sBody

ShellExecute Me.hwnd, vbNullString, sMsg, vbNullString, vbNullString, SW_SHOWNORMAL
End Sub


Adios
  #6 (permalink)  
Antiguo 02/10/2004, 16:17
 
Fecha de Ingreso: diciembre-2001
Ubicación: Morelia, México.
Mensajes: 312
Antigüedad: 22 años, 4 meses
Puntos: 0
Creo que la falla está aquí:

If (Val(Reg1.Text) = (numSerie + 896576537)) And (Val(Reg2.Text) = (numSerie + 167235485)) And (Val(Reg3.Text) = (numSerie + 349824653)) Then

Unload Me
frmMain.Show
Exit Sub

Else


Ojo.. te falta poner el EXIT SUB, porque si no continúa cargando las demás rutinas y por eso te da el error, el Unload Me o el .Show no te terminan el proceso, el Exit Sub, si.

Pura vida!!
  #7 (permalink)  
Antiguo 02/10/2004, 16:22
 
Fecha de Ingreso: septiembre-2003
Ubicación: Santo Domingo - R. Dominicana
Mensajes: 606
Antigüedad: 20 años, 7 meses
Puntos: 0
Ahora me dice lo siguiente:

Run-time error "364"
Object was unloaded
  #8 (permalink)  
Antiguo 02/10/2004, 16:23
 
Fecha de Ingreso: septiembre-2003
Ubicación: Santo Domingo - R. Dominicana
Mensajes: 606
Antigüedad: 20 años, 7 meses
Puntos: 0
Y el que me tira el Error es el frmReinicio

frmRegistroSistema.Show
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:49.