le 11/07/09 0:24, Franck Perez <perez.franck@gmail.com> a écrit :
> Bonjour,
>
> je voudrais faire la chose suivante :
> - Le programme A contient une liste de fichiers. Disons qu'il tourne en
> Java sur un serveur Web
> - Lorsque l'utilisateur clique sur un fichier, le programme A doit
> lancer le Programme B pour qu'il lise ce fichier. Le programme B est
> développé en RealBasic (Desktop, pas Console).
> Ma question est la suivante : Y a-t-il un moyen de lancer une
> application realbasic depuis un application tierce en ajoutant un
> argument ? Si oui, comment et comment récupérer l'argument (ici le lien
> sur le fichier) ? Comme dans le cas des "dropped files " ?
Pour ma part, je fais comme pour "dropped file".
Sous Mac OS, j'envoie un AppleEvent à partir de l'application A. Cette
AppleEvent est géré dans l'event OpenDocument de la classe Application de
l'application B :
Dans l'application A :
Sub OpenFileWith(fichier As FolderItem, applic As FolderItem)
// Debut.: 14/04/2005
// Fin...: 08/04/2008
// Notes.: Ouvre le fichier passé avec l'application requise
#IF targetMacOS
dim success as Boolean
dim errNumber As Integer
dim errString, msgErr As String
dim ae as AppleEvent
if fichier <> nil AND fichier.exists then
msgErr = "Impossible d'ouvrir le fichier "+fichier.absolutePath
ae = NewAppleEvent("aevt", "odoc", "MACS")
ae.FolderItemParam("----") = fichier
if applic <> nil AND applic.exists then
msgErr = msgErr + " avec l'application " + applic.absolutePath
ae.FolderItemParam("usin") = applic
end if
if ae.send then
if ae.replyInteger = 0 then
success = True
else
errNumber = ae.replyInteger
errString = ae.replyString
msgErr = msgErr + "." + kCR + kCR + "Erreur "+str(errNumber) +"
: "+errString
alertReturn = Alert(stop, msgErr, 420)
end if
else
errString = "La commande n'a pu être envoyée au système"
msgErr = msgErr + "." + kCR + kCR + "Erreur : "+errString
alertReturn = Alert(stop, msgErr, 420)
end if
end if
#ELSE
dim success as Boolean
if fichier <> nil AND fichier.exists then
success = OpenFileWin32( fichier, applic )
end if
#ENDIF
End Sub
|