La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/FoxPro-Visual-FoxPro/215853-Como-evito-que-se-ejecute-de-1-vez.html

Cómo evito que se ejecute + de 1 vez???

sin imagen de perfil

Cómo evito que se ejecute + de 1 vez???

Publicado por Taikos (188 intervenciones) el 16/01/2003 02:49:58
Hola, gracias por tomar en cuenta mi pregunta. Tengo una duda, qué debo hacer para evitar que se ejecute más de una vez mi aplicación al hacer click sobre el ícono en el escritorio o incluso desde el menu Inicio\programas???

Gracias por tu soporte

RE:Cómo evito que se ejecute + de 1 vez???

Publicado por Alberto (1 intervención) el 16/01/2003 03:21:01
Lo úmico que necesitamos hacer es lo siguiente:

En nuestras primeras líneas de programa ponemos estas líneas de código:

* Antes de ponerle el título a nuestra ventana:
IF F_ActivaWin("Mi programa")
* El programa ya estaba activo:
RETURN && Termina el programa
ENDIF

* Empezamos a definir las características de la ventana principal
* siempre y cuando sea necesario visualizarla.
WITH _SCREEN
* PREPARO LA VENTANA PRINCIPAL
* .WIDTH = ...
* .HEIGHT = ...
* ETC, ETC
*
*
.CAPTION = "Mi programa" && Título de la ventana
.VISIBLE = .T.
ENDWITH

* Y ESTA ES LA FUNCION QUE LO HACE TODO:
*-----------------------------
FUNCTION F_ActivaWin(cCaption)
*-----------------------------
LOCAL nHWD
DECLARE INTEGER FindWindow IN WIN32API ;
STRING cNULL, ;
STRING cWinName

DECLARE SetForegroundWindow IN WIN32API ;
INTEGER nHandle

DECLARE SetActiveWindow IN WIN32API ;
INTEGER nHandle

DECLARE ShowWindow IN WIN32API ;
INTEGER nHandle, ;
INTEGER nState

nHWD = FindWindow(0, cCaption)
IF nHWD > 0
* VENTANA YA ACTIVA
* LA "LLAMAMOS":
ShowWindow(nHWD,9)

* LA PONEMOS ENCIMA
SetForegroundWindow(nHWD)

* LA ACTIVAMOS
SetActiveWindow(nHWD)
RETURN .T.
ELSE
* VENTANA NO ACTIVA
RETURN .F.
ENDIF
sin imagen de perfil

RE:Gracias amigo

Publicado por Taikos (188 intervenciones) el 16/01/2003 08:51:54
Gracias por tu respuesta. La pondré en practica y te avisaré cualquier cosa.

Saludos

TAIKOS

RE:Cómo evito que se ejecute + de 1 vez???

Publicado por TITO (356 intervenciones) el 17/01/2003 02:25:17
A veces las cosas sencillas dan el mismo resultado. Podrias en el comienzo del programa, colocar una instruccion que busque en una tabla que tengas para parametros, un campo de tipo logico donde verifique si es posible continuar, en caso contrario cierra todo y para fuera.
Que te vaya bien
TITO

RE:Cómo evito que se ejecute + de 1 vez???

Publicado por TITO (356 intervenciones) el 17/01/2003 02:30:43
A veces las cosas sencillas dan el mismo resultado. Podrias en el comienzo del programa, colocar una instruccion que busque en una tabla que tengas para parametros, un campo de tipo logico donde verifique si es posible continuar, en caso contrario cierra todo y para fuera.
Que te vaya bien
TITO

sin imagen de perfil

RE:Gracias tito

Publicado por Taikos (188 intervenciones) el 17/01/2003 03:58:24
Gracias por tu respuesta amigo. La pondré en práctica

Taikos