Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Iniciar sesiónIniciar sesiónCrear cuentaCrear cuenta

FoxPro/Visual FoxPro Avanzado - Cómo evito que se ejecute + de 1 vez???

Vista:
Me gusta: Está pregunta es útil y esta clara
0
No me gusta: Está pregunta no esta clara o no es útil
 
Asunto:

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

Autor:Taikos (184 intervenciones)
Fecha: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
Responder
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

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

Autor:Alberto (1 intervención)
Fecha: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
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

RE:Gracias amigo

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

Saludos

TAIKOS
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

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

Autor:TITO (305 intervenciones)
Fecha: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

Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

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

Autor:TITO (305 intervenciones)
Fecha: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

Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

RE:Gracias tito

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

Taikos
Comentar