FoxPro/Visual FoxPro - COMO MATAR UN PROCESO QUE SE ESTA EJECUTANDO

 
Vista:

COMO MATAR UN PROCESO QUE SE ESTA EJECUTANDO

Publicado por Juan (230 intervenciones) el 07/03/2007 13:31:15
Hola tengo un programa de gestión creado por mi y lo tengo puesto en varios clientes, una de las cosas que hace es que cuando yo tengo que tocar algo en las tablas, renombro un fichero y el programa está continuamente con un timer mirando si existe ese fichero y si existe avisa al usuario y se cierra solo, esto lo hago para cuando alguien deja el programa abierto y se va cerrando su despacho no podemos pasar, hago eso y se cierra solo, el problema es que al sacar listados como se hacen con otro programa como puedo ser Cristal Reports o FoxFire, aunque yo ponga ese fichero no se cierra porque se está ejecutando el programa de los listados, y el programa de gestión se queda en espera, como puedo hacer para que eso no pase, y que esté el programa que esté si está abierta la gestión que se cierre.

Saludos
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
sin imagen de perfil

RE:COMO MATAR UN PROCESO QUE SE ESTA EJECUTANDO

Publicado por Antonio Moronta (134 intervenciones) el 07/03/2007 15:00:12
No se si entendi muy bien pero lo que creo debes hacer es que en vez de renombrar un fichero, por que no mejor crear una variable publica o local y constatar si esta o no en memoria.

Ojala te ayude.
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:COMO MATAR UN PROCESO QUE SE ESTA EJECUTANDO

Publicado por Juan (230 intervenciones) el 07/03/2007 18:18:24
Ya tengo el programa terminado e ir cambiando ahora las variables sería un jaleo, no se puede hacer de otra manera, que aunque se abra otro programa de consultas mi programa siga ejecutando el timer.

Saludos
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
Imágen de perfil de Enrique Orellana

RE:COMO MATAR UN PROCESO QUE SE ESTA EJECUTANDO

Publicado por Enrique Orellana (6 intervenciones) el 09/03/2007 20:27:17
Estimado Juan.

En la URL siguiente
www.davphantom.net
busca el software "PsTools 2.0", es éste encontras una serie de utilidades, entre ellas puedes utilizar la aplicación PsKill. Te permitirá eliminar un proceso como Cristal Reports, FoxFire o cualquier otro. Recuerda que en VFP puedes utilizar los comandos RUN o ! (signo de admiración) para ejecutar comandos MS-DOS.

Atentamente,
Enrique Orellana
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
sin imagen de perfil

RE:COMO MATAR UN PROCESO QUE SE ESTA EJECUTANDO

Publicado por Ernesto Hernandez (4623 intervenciones) el 09/03/2007 21:58:18
IF KillApp("PON TU TESXTO AQUI")
?"APLICACIONION KILLE"
ELSE
?"LA APLICACION ESTA VIVA..."
ENDIF

FUNCTION KillApp
LPARAMETER tcCaption
LOCAL lnWinHandle, lnRetval, lnResult, llRetval
DECLARE INTEGER WaitForSingleObject IN Win32API ;
INTEGER hHandle, ;
INTEGER dwMilliseconds

DECLARE INTEGER FindWindow IN Win32API ;
STRING lpClassName, ;
STRING lpWindowName

DECLARE INTEGER PostMessage IN Win32API ;
INTEGER hwnd, ;
INTEGER wMsg, ;
INTEGER wParam, ;
INTEGER lParam

DECLARE INTEGER IsWindow IN Win32API ;
INTEGER hwnd

#DEFINE WM_CLOSE 16 && H10
#DEFINE INFINITE 4294967295 && HFFFFFFFF

lnWinHandle = FindWindow(0, tcCaption)
lnRetval = PostMessage(lnWinHandle, WM_CLOSE, 0, 0)
lnResult = WaitForSingleObject(lnWinHandle, INFINITE)
llRetval = (IsWindow(lnWinHandle) = 0)
RETURN llRetval
ENDFUNC


sUERTE
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