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???

  Imprimir  
Vista:

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

Publicado por Taikos (184 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
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: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
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:Gracias amigo

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

Saludos

TAIKOS
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:Cómo evito que se ejecute + de 1 vez???

Publicado por TITO (305 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

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:Cómo evito que se ejecute + de 1 vez???

Publicado por TITO (305 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

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:Gracias tito

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

Taikos
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