#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@ i2g.fr
www.i2g.fr