begin process at 2012 05 24 10:43:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Foxpro

 > 

Archives

 > 

Divers

 > 

Instances multiples exe FoxPro


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Instances multiples exe FoxPro

vendredi 14 janvier 2005 à 00:05:43 | Instances multiples exe FoxPro

ThierryCAMBA

Quelqu'un a-t-il une solution pour éviter qu'un exe FoxPro ne soit lancé plusieurs fois sous Windows. Il est possible bien sûr de tester l'existance d'un fichier temporaire dans le répertoire de l'application et de le supprimer en sortant, mais j'aurais préféré une solution plus élégante (faisant appel au API Windows ? ou autre chose).

Merci à tous.... !

Thierry CAMBA

vendredi 14 janvier 2005 à 00:50:16 | Re : Instances multiples exe FoxPro

ThierryPerretier

Réponse acceptée !

Bonjour,

Voici 2 solutions  :

*****

oWMI= GetObject("winmgmts:")
IF  oWMI.ExecQuery([Select * from Win32_Process where name ="APP.EXE"]).count>0
     MessageBox("APP.EXE déjà lancé")
     QUIT
ENDIF


******

IF NOT FirstInstance()
    QUIT
ENDIF

FUNCTION FirstInstance
DECLARE INTEGER CreateMutex IN WIN32API INTEGER, INTEGER, STRING @
DECLARE INTEGER CloseHandle IN WIN32API INTEGER
DECLARE INTEGER GetLastError IN WIN32API
DECLARE INTEGER SetProp IN WIN32API INTEGER, STRING @, INTEGER
DECLARE INTEGER GetProp IN WIN32API INTEGER, STRING @
DECLARE INTEGER REMOVEPROP IN WIN32API INTEGER, STRING @
DECLARE INTEGER IsIconic IN WIN32API INTEGER
DECLARE INTEGER SetForegroundWindow IN WIN32API INTEGER
DECLARE INTEGER GetWindow IN WIN32API INTEGER, INTEGER
DECLARE INTEGER SHOWWINDOW IN WIN32API INTEGER, INTEGER
DECLARE INTEGER GetDesktopWindow IN WIN32API
DECLARE LONG FindWindow IN WIN32API LONG, STRING
#DEFINE SW_RESTORE               9
#DEFINE ERROR_ALREADY_EXISTS   183
#DEFINE GW_HWNDNEXT              2
#DEFINE GW_CHILD                 5
LOCAL llRetVal, lcExeFlag, lnExeHwnd, lnHwnd
IF VERSION(2) = 0
    lcExeFlag = STRTRAN(_SCREEN.CAPTION, " ", "") + CHR(0)
    lnExeHwnd = CreateMutex(0, 1, @lcExeFlag)
    IF GetLastError() = ERROR_ALREADY_EXISTS
        lnHwnd = GetWindow(GetDesktopWindow(), GW_CHILD)
        DO WHILE lnHwnd > 0
            IF GetProp(lnHwnd, @lcExeFlag) = 1
                IF IsIconic(lnHwnd) > 0
                    SHOWWINDOW(lnHwnd,SW_RESTORE)
                ENDIF
                SetForegroundWindow(lnHwnd)
                EXIT
            ENDIF
            lnHwnd = GetWindow(lnHwnd,GW_HWNDNEXT)
        ENDDO
        CloseHandle(lnExeHwnd)
        llRetVal = .F.
    ELSE
        SetProp(FindWindow(0, _SCREEN.CAPTION), @lcExeFlag, 1)
        llRetVal = .T.
    ENDIF
ELSE
    llRetVal = .T.
ENDIF
RETURN llRetVal
ENDFUNC

vendredi 14 janvier 2005 à 10:10:46 | Re : Instances multiples exe FoxPro

ThierryCAMBA

Merci beaucoup pour ces infos qui m'ont bien aidées..... !
Une petite précision tout de même : les fonctions RemoveProp et ShowWindow ne doivent pas être en majuscules mais comme indiquées précedemment. D'autre part (sous Windows98 et FoxPro6) il faut se passer du test IF Version(2).....

Sinon tout fonctionne.... !

Thierry CAMBA



Cette discussion est classée dans : exe, solution, foxpro, multiples, instances


Répondre à ce message

Sujets en rapport avec ce message

créer des exe sans le nom "Microsoft Visual foxpro" [ par MVTNV ] Bonjour,Je fais des petit programme et je voudrais avoire mon nom en haut à coté de l'icone au lieu de "Microsoft Visual Foxpro"Comment dois je le fai appli web [ par herve1 ] BonjourDeveloppeur Foxpro depuis MSdos (!) je cherche une solution pour developper des petites appli Foxpro a installer sur chez un hebergeur internet fichiers necessaires au vfpoledb ? [ par lijohann ] bonjour,j'ai une appli sous excel qui utilise le vfpoledb pour accéder à mes donées.Mon probleme est que des utilisateurs doivent l'appeler en mode te Utilisation de dlls vb en foxpro [ par jee0404 ] Bonjour,              Est-ce que je peut utiliser facilement les dll en visual basic dans mesprogrammes en foxpro ? lister les champs et le type d'une table foxpro [ par AliceT ] Bonjour, je cherche le moyen (via oledb) de lister les champs ansi que les caractéristiques d'une table foxpro.J'attends vos idéesbiz'Alice Tutorial [ par brend ] Bonjour,Je recherche un livre en francais (si possible) bien fait sur la programmation de foxpro.A noter: je connaissais bien foxpro et clipper dbase Tutorial FoxPro [ par the_smurf ] Bonjour à tousJeune développeur, je dois reprendre le développement et la maintenance de logiciels écrit en FoxPro 6.0 et 8.0.Je cherche un tutorial q bug dans Foxpro ????? [ par Datadis ] Bonjour à vous tous...Peut-être quelqu'un va t'il trouver une réponse à ce bug lié aux décimales dans Foxpro (testé en version 7, 8 et 9).par exemple? imprimer en foxpro [ par jee0404 ] Bonjour, J'ai un problème , je fais une application en foxpro et j'aimerais configurer l'imprimante manuellement (c'est-à-dire par des lign Foxpro 3 et XP [ par Psy06 ] Bonjour Dans certains cas lors du lancement d'une application développée avec Visual foxpro 3.0 sous window XP je reçois des messages : "c:\windows\sy


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,558 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales