dim. 02 avril 2017, 20h42
phoenixset
Algérie
atoutfox.public.association
Re: Comment détecter si l'application est déjà ouverte ?
Bonjour à tous;
J'ai finalement résolu mon problème et ce grâce au forum AtoutFox, la solution suivante a été vérifiée pour le scénario suivant :
- Utilisation de l'application exclusivement en poste local
- L'ouverture de l'application ne se fait que depuis le poste local
- OS Windows 7
-------- Début du code dans le PRG qui lance l'application --------
&& Préparation de l'environnement comme set default, set ... etc
IF isAppStart() = .T.
messagebox("L'application est déjà en cours d'exécution !",48,"Attention")
CLOSE ALL
USE
QUIT
ENDIF
&& Suite du code pour la poursuite de l'exécution de l'application au cas ou isAppStart serait .F.
.....
....
....
...
&& Et tout en bas
PROCEDURE isAppStart()
Local VAL_RETOUR as Boolean
Local fd as Integer, cAppNameEnCours
m.VAL_RETOUR = .F.
m.cAppNameEnCours = alltr(upper(JUSTSTEM(_VFP.Application.ServerName)))
m.cAPPNAME = "GESTION2"
m.fd = Fcreate("c:\Gestion2\"+lower(m.cAPPNAME)+'.txt')
*Messagebox(m.fd)
IF (m.fd < 0 ) && appli deja lancee, On ne peut pas Ouvrir
m.VAL_RETOUR = .T.
Fclose(fd)
ELSE && On peut lancer
If m.cAPPNAME <> m.cAppNameEnCours
Fclose(fd)
m.VAL_RETOUR = .F.
ENDIF
ENDIF
RETURN m.VAL_RETOUR
ENDPROC
-------- Fin du code dans le PRG qui lance l'application --------
Ici le nom de mon application est "Gestion2" et le répertoire est "c:\Gestion2\"
Voila! J'ai voulu partager ma solution qui a bien marché pour mon cas.
La solution est tirée de la proposition de OlivierH.
Merci à tous.
Cordialement.
Permalink : http://www.atoutfox.org/nntp.asp?ID=0000018168