2 votos

Listado de todos los documentos abiertos en todos los abiertos visibles aplicaciones en AppleScript

He llegado a través de hacer algo como:

Código:

tell application "Preview"
    set p to {}
    set p to documents
end tell

Salida:

{document "1st.pdf" of application "Preview", document "2nd.pdf" of application "Preview"}

Pero esto es altamente específicas de la aplicación haciendo este en MS Word, por ejemplo, dio nombres de vías y algunas aplicaciones como CodeRunner no entienden el documents palabra clave en todo.

Dado que estos documentos abiertos:

Current open documents from all open visible apps
+– Microsoft Word.app
|  +– 1.docx
|  +– 2.docx
+– CodeRunner.app
|  +– 1.sh
|  +– 2.py
|  +– 3.pl
+– Preview.app
   +– 1.pdf
   +– 2.png
.
.
.

Quiero una salida de algo como esto:

{"~/Documents/1.docx", "~/Downloads/2.docx", "~/Dropbox/folder/1.sh", "~/Dropbox/others/2.py", "~/Downloads/folder/folder/3.pl", "~/Documents/special/1.pdf", "~/Dropbox/special/2.png", ...}

¿Cómo es posible listar todos los documentos abiertos a través de todas las aplicaciones abiertas?

2voto

fumoboy007 Puntos 111

He estado tratando de hacer esto por mí mismo. He llegado a la conclusión de que no hay ningún estándar, de manera garantizada de obtener los documentos abiertos de una aplicación en ejecución.

Lo que intentó es el mejor método. Para las aplicaciones que utilizan el Cacao documento de arquitectura (la mayoría), no es automática, soporte para AppleScript para llegar a todos los abra NSDocument objetos y la consulta de algunas de las propiedades de los objetos. El mapeo entre el AppleScript propiedades y el Objetivo-C propiedades se muestra a continuación.

AppleScript propiedad => Objective-C getter:

  • path => fileName
  • modified => isDocumentEdited
  • name => lastComponentOfFileName

Lo que quiero es que el path de la propiedad. Como tell application "Preview" to set documentsList to path of documents.

Por desgracia, este sistema automático de soporte para AppleScript sólo está disponible para las aplicaciones que utilizan el Cacao documento de arquitectura y tener AppleScript habilitado (a través de la NSAppleScriptEnabled Info.plist clave). Por lo tanto, este método no funcionará en algunas aplicaciones. Por ejemplo, CodeRunner no tiene AppleScript habilitado. Y TextMate no uso el Cacao documento de arquitectura.

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