1 votos

Usar AppleScript para obtener el nombre de la aplicación dado su identificador de paquete (ID)

Tengo un AppleScript en el que tengo una lista de aplicaciones especificadas por sus identificadores de bundle (por ejemplo, el bundle de la aplicación "TextExpander" es "com.smileonmymac.textexpander").

Quiero ser capaz de obtener la aplicación de nombre de su identificador de paquete, por ejemplo, para convertir "com.smileonmymac.textexpander" en "TextExpander".

Sé cómo hacer lo contrario:

set theAppID to the id of the application "TextExpander"

Esto da el resultado:

com.smileonmymac.textexpander

Sin embargo, no he conseguido encontrar el conjuro mágico que vaya en la otra dirección. Por ejemplo, lo he intentado:

set theAppName to the name of the application whose bundle identifier is "com.smileonmymac.textexpander"

pero todo lo que obtengo es el mensaje de error:

error: "Can't get name of application." number -1728 from name of application

También he intentado envolver esto entre (a) tell application "System Events" y b) end tell .

He probado otras permutaciones y frases, con resultados similares.

¿Existe una forma de consultar los eventos del sistema para obtener el nombre de una aplicación identificada por su ID de paquete?

1voto

red_menace Puntos 111

Esos no son de Eventos del Sistema, son propiedades de la aplicación así que puedes hacer algo como..:

set theAppID to the id of the application "Safari" -- com.apple.Safari, or whatever
set theAppName to name of application id theAppID

También se puede utilizar AppleScriptObjC, por ejemplo:

use framework "Foundation"
use scripting additions

set theAppID to ((current application's NSBundle's bundleWithPath:(POSIX path of (path to application "Safari")))'s bundleIdentifier) as text -- com.apple.Safari, or whatever
set theAppName to ((current application's NSBundle's bundleWithIdentifier:theAppID)'s objectForInfoDictionaryKey:"CFBundleDisplayName") as text

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X