Visual Basic - ejecutar sentencia al terminar programa

Life is soft - evento anual de software empresarial
 
Vista:

ejecutar sentencia al terminar programa

Publicado por rafael (44 intervenciones) el 21/02/2010 21:02:16
Estoy realizando un keylogger mi problema es que no me guarda lo grabado cuando se finaliza el programa, me explico, cuando ejecuto el comando terminar de mi keylog me gusrda todo lo capturado, ahora cuando finalizo el programa con el boton finalizar tambien lo guarda, pero se supone que cuando el usuario apaga su compu el keylog debe de guardar los datos, y esto no esta realizandolo, hay alguna manera de que se ejecute una sentencia al apagar el formulario?? ya intente con los eventos unload y deactive tambien con unload query pero nada ayuda por favor
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ejecutar sentencia al terminar programa

Publicado por Antoni Masana (4 intervenciones) el 22/02/2010 12:48:49
El evento QueryUnload se evoca al finalizar el programa. Cuando Windows se cierra correctamente (es decir NO se desenchufa de la corriente) fuerza a los programas a cerrarse y se ejecuta este evento lo que permite que el programa se pueda cerrar guardando previamente la informacion y cerrar los ficheros abiertos.


La variable UnloadMode tiene 5 posibles valores en función de quien o que lo cierra.

Un Ejemplo:

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
'vbFormCode 1 Unload method invoked from code.
'vbAppWindows 2 Current Windows session ending.
'vbFormMDIForm 4 MDI child form is closing because the MDI form is closing.
'vbFormControlMenu 0 User has chosen Close command from the Control-menu box on a form.
'vbAppTaskManager 3 Windows Task Manager is closing the application.

Select Case UnloadMode

Case 0
MsgBox "no se puede cerrar 0"
Cancel = True

Case vbAppTaskManager
Call Grabar_estado
MsgBox "no se puede cerrar 3"
Cancel = True

End Select

End Sub

---------------------------------------------

Otro Ejemplo:

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Dim Opc As Integer, _
a As Integer

Tmp_Raton = -1: Mouse_Show

If UnloadMode <> vbAppWindows And UnloadMode <> vbAppTaskManager Then

Rel_Lector.Enabled = False

Opc = MsgBox("Final de mercado", _
vbInformation + vbYesNo + vbDefaultButton2, _
"FRONT para Window")

If Opc = vbYes Then
Cancel = 0
Else
Cancel = -1: Rel_Lector.Enabled = True
End If
End If

If Cancel = 0 Then
Win_Front.MousePointer = 11

Mnu_Opcion.Enabled = False
Mnu_Shut.Enabled = False
Mnu_Ayuda.Enabled = False

Aviso "Cerrando Ficheros. 0%"

While Rel_Lector_Prefe.Enabled
Rel_Lector_Prefe_Timer
Wend

Preferido_Guardar
Borra_Temporal
Else
Tmp_Raton = SEG_RATON
End If
End Sub

--------------------

Si el usuario no apaga ordenadamente el ordenador debes en primer lugar pegarle en los dedos con una regla y explicarle porque debe hacerlo correctamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ejecutar sentencia al terminar programa

Publicado por RAFAEL (44 intervenciones) el 26/02/2010 16:12:47
Muchas gracias Antoni, muy bien explicado, un abrazo a la distancia. Gracias otra vez
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar