Como matar el proceso de la propia aplicacion

Iniciado por Timerlux, 14 Octubre 2007, 23:33 PM

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

Timerlux

Necesito ayuda.

Tego un:

Do While
  doEvents
Loop


Que se dedica a leer lineas de un archivo largisimo.
Si yo quisiera cerrar el programa mientras esta leyendo solo consigo hacer desaparecer la ventana del programa pero no el proceso, que sigue leyendo.

Sabeis alguna manera sencilla de cerrar todo el programa?

gracias

Hendrix

Como??? Si cierras el archivo/proyecto todavia sigue leyendo??? :-\
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Timerlux

si es algo raro, pero es asi, el formulario o ventana del programa (segun el caso) desaparece el evento queryunload  se produce pero el proceso no acaba, sigue trabajando y cuando termina vuelve a mostrar la pantalla del programa.

Timerlux

comprobado mas en detalle se producen los eventos QueryUnload y Unload pero no el evento Terminate, el cual deberia producirse,

es que no quiero tirar de Api para matar el propio proceso, creo que tiene que ver alguna forma sencilla de negociar una solucion con el prograna.

he provado a poner una Variable a True en el evento QueryUnload, y en el Do While decirle que cuando la Variable sea True que haga Exit Do

pero sigue igual

Hendrix

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

HaDeS, -

Tambien se puede utilizar apis:
Código (vb) [Seleccionar]

Private Declare Function TerminateProcess Lib "kernel32" Alias "TerminateProcess" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function GetCurrentProcess Lib "kernel32" Alias "GetCurrentProcess" () As Long

private sub command1_click()
terminateprocess getcurrentprocess, 0
end sub


Saludos ;)

Tengu

o simplemente podriasusar un comando at con el nombre de tu proceso y listo.

Encuentros por Video y Chat !!

Timerlux

Gracias a todos ya lo he solucionado,

el QueryUnload estaba en un MDIForm y el Do While en un Child Form y se me olvido poner Publica la variable en el modulo.


Saludos