banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 29 March 2005 15:43

ROBIN Thomas
Invité

Savoir si un mbx est deja lance

Bonjour,

Dans un premier outil MBX je fais appel à un second grace à la commande
run application.

Cependant, si le second mbx tourne déjà ... le premier va planter.

Ainsi est-il possible de savoir si un mbx est déjà en cours
d'utilisation, et si oui, comment ?

Merci d'avance

THOMAS ROBIN
CNASEA GUYANE
Responsable Info / SIG / SGBD
Cellule régularisation foncière agricole
4 rue Louis Blanc
97300 CAYENNE

 

#2 Tue 29 March 2005 15:43

Jacques Paris
Invité

Re: Savoir si un mbx est deja lance

Si vous cherchez l'efficacite  brutale  pourquoi ne pas s'assurer que l'application n'est pas active en la fermant avec, par exemple

terminate application  af_managr.MBX
run application  C:Program FilesMapInfoProfessional 6.5TOOL
PARISaf_managr.MBX

Si l'application n'est pas ouverte, rien ne se passera, pas de message.

Jacques Paris

 

#3 Tue 29 March 2005 18:17

Christophe Barbier
Invité

Re: Savoir si un mbx est deja lance

Bonjour,

Voici une fonction qui fait ce que vous cherchez:
-------

Function Application_isloaded(ByVal s_MbxFile As String) As Logical

Dim nChan        As Integer
Dim i         As Integer
Dim sTopics    As String
Dim sWord     As String
Dim app         As String
Dim tabulation     As String

tabulation = Chr(9)
nChan = DDEInitiate( MapInfo ,  System )
sTopics = DDERequest(nChan,  Topics )
DDETerminate nChan

sWord = GetWord(sTopics, tabulation)

Do While sTopics
app = PathToFileName(GetWord(sTopics, tabulation))
If app=s_MbxFile Then
        Application_isloaded = TRUE
        Exit Do
End If
Loop

End Function

-------

Function GetWord(sText As String, ByVal sDelim As String) As String
Dim iDelimPos As SmallInt

sText = RTrim(LTrim(sText))

iDelimPos = InStr(1, sText, sDelim)
If iDelimPos Then
GetWord = Left(sText, iDelimPos-1)
sText = Right(sText, Len(sText)-iDelimPos)
Else
GetWord = sText
sText =
End If

End Function

-------

Cordialement,

Christophe Barbier, I²G
Division Systeme
christophe.barbier@texte-a-enlever.i2g.fr
www.i2g.fr

 

Pied de page des forums

Powered by FluxBB