2010-04-06 3 views
0

Voici le problème:Plusieurs applications possibles via les services de lancement, veulent spécifier un particulier

J'ai une liste de noms d'applications que je veux lancer. Ils n'incluent pas de chemin (par exemple {"VLC", "Microsoft Word"} .J'ai deux copies différentes de VLC dans différents répertoires.J'aimerais que Launch Services ouvre UNIQUEMENT celui de/Applications/et ne se lance JAMAIS depuis/Applications/AnotherDirectory

Je veux obtenir le chemin de ces derniers, et tester pour voir ce que Launch Services veut lancer (via bash avec "open" ou applescript via "tell ___ to launch" ou [lancement NSWorkspace ...])

la seule façon que je suis venu avec pour tester le chemin d'un fichier sur le point d'être lancé par les services de lancement est:

Applescript:

tell application "Finder" to return the (posix path of (path to application "VLC" as alias)) 

Cela fonctionne bien, mais lance l'application (que je ne veux pas du tout).

Suggestions?

Répondre

0

Vous pouvez utiliser LSFindApplicationForInfo(), qui "localise une application avec une signature de créateur, un ID de regroupement, un nom de fichier ou une combinaison de ces caractéristiques".

+0

merci, je vais regarder dans cela. –

0

Si vous avez l'ID de paquet d'une application, vous pouvez obtenir le chemin de l'application sans lancer à l'aide du script suivant:

tell application "Finder" 
    URL of application file id "org.videolan.vlc" 
end tell 

Ceci produit la sortie suivante dans le journal des événements:

tell application "Finder" 
    get URL of application file id "org.videolan.vlc" 
     "file://localhost/Applications/VLC.app/" 
end tell 
Questions connexes