2013-09-08 6 views

Répondre

0

Je ne suis pas familier avec Xojo, mais "lancer" une application sur OS X est compliqué. Il y a beaucoup de choses à considérer, surtout si c'est déjà en cours.

Je vous recommande de regarder dans deux options possibles, soit utiliser la capacité de realbasic de lancer appeler du code natif C pour exécuter l'un des trois -[NSWorkspace launchApplication...] méthodes: https://developer.apple.com/library/mac/documentation/cocoa/reference/applicationkit/classes/NSWorkspace_Class/Reference/Reference.html#//apple_ref/doc/uid/20000391-SW23

Vous pouvez également utiliser la ligne de commande d'Apple open outil:

/usr/bin/open -a "App Name" 
/usr/bin/open -a "/Applications/App Name.app" 
1
dim s as new Shell 
s.Execute("open -a ""Finder""") 

' Check error code and do something about it... 
if s.ErrorCode <> 0 then 
    MsgBox("Error code: " + Str(s.ErrorCode) + EndOfLine + "Output: " + s.Result) 
end if 

Change « Finder » à quelle que soit l'application dont vous avez besoin, ou de construire une chaîne et passez à s.Execute() que. Veillez à inclure des guillemets échappés, en particulier si l'application comporte des espaces dans son nom.

4

Une autre possibilité est d'utiliser le Xojo FolderItem standard et d'utiliser la méthode Launch.

Dim f as folderitem = specialfolder.applications.child("AppName") 
if f <> nil and f.exists then 
    f.launch 
end 

Documentation de référence: http://docs.xojo.com/index.php/SpecialFolder http://docs.xojo.com/index.php/FolderItem.Launch

+0

Je complètement oublié FolderItem.Launch! C'est certainement le meilleur moyen, et cross plate-forme aussi. – ianmjones

+0

Le seul problème potentiel est que si l'application n'est pas à l'emplacement standard, dans ce cas, vous devez trouver ou savoir déjà où se trouve l'application, ou passer à l'utilisation de la commande "open" via shell. – ianmjones

Questions connexes