La Web del Programador: Comunidad de Programadores
 
    Pregunta:  1152 - IMPEDIR REENTRADA A UN PROGRAMA
Autor:  fernando quintanilla alarcon
Quisiera poder evitar que por error o por cualquier otro motivo, se ejecutara 2 veces el mismo programa (mi programa) en el mismo ordenador. el lenguaje en que está hecho es Visual Fox Pro 5. Gracias

  Respuesta:  Luis Barrantes
Para imprdir que un usuario entre dos veces en una misma pantalla o programa, el nombre del formulario y el name deben ser iguales.

Copia la siguiente instruccion en el menu o donde ejecutes la invocación del programa;

IF wexist("miformulario")
messagebox("Formulario en uso",48,"Mensaje del sistema")
ELSE
DO FORM miformulario
ENDIF

buena suerta y cuentas como te fue.

""shamman

  Respuesta:  leonardo olivares
If _EstaActiva( "nombre ventana principal" ) Then
_screen.visible=.f.
=MessageBox("solo si quieres")
QUIT
EndIf

Function _EstaActiva( cCaption )
Declare Integer FindWindow IN Win32Api;
String cNULL, ;
String cWinName

Return FindWindow(0, cCaption ) # 0
EndFunc

*** EOF
rústica pero funciona

  Respuesta:  Xavi
Tienes que utilizar la API Findwindows, la cual te indica si una aplicacion ya esta en uso.

Si revisas el apartado de Biblioteca de Temas-Utilización de algunas API´s en Visual Basic, veras el codigo que necesitas.

Saludos