2 votos

Obtener el texto de la notificación más reciente con applescript

Me gustaría ser capaz de agarrar el texto de la notificación más reciente y pasarlo a una variable de applescript. ¿Cómo puedo hacer eso?

Edit: he aquí lo que tengo hasta ahora:

on run
    tell application "System Events"
        tell process "NotificationCenter"
            tell first window
                set rawElements to UI elements
            end tell
        end tell
    end tell
end run

Esto me lleva la mayor parte del camino, pero no me consigue el cuerpo de la notificación, sólo la etiqueta:

Aquí está el resultado:

{texto estático "Macro Cancelado" de la ventana 1 del proceso de solicitud "NotificationCenter" de la aplicación "Sistema de Eventos", imagen 1 de la ventana 1 del proceso de solicitud de "NotificationCenter" de la aplicación "Sistema de Eventos", desplácese a la zona 1 de la ventana 1 del proceso de solicitud "NotificationCenter" de la aplicación "Sistema de Eventos", la imagen 2 de la ventana 1 del proceso de solicitud de "NotificationCenter" de la aplicación "Sistema de Eventos"}

enter image description here

2voto

user3439894 Puntos 5883

Mediante el siguiente ejemplo AppleScript código para generar una notificación:

display notification with title "Macro Cancelled" subtitle "Cancel All Macros."

En el ejemplo de la notificación, Cancelar Todas las Macros. está en:

static text of scroll area 1 of window 1 of process "NotificationCenter"

El uso de:

tell application "System Events" to ¬
    get value of ¬
        static text of ¬
        scroll area 1 of ¬
        window 1 of ¬
        process "NotificationCenter"

Devuelve:

{"Cancel All Macros.", ""}

Como usted puede ver lo que se devuelve es un list y tendrá que ser un proceso como tal.

Nota sin embargo, en este ejemplo, Cancelar Todas las Macros. es en realidad static text 1 of scroll area 1 y static text 2 of scroll area 1, que está en blanco, es cuando display notification utiliza:

  • pantalla de notificación [texto] : el cuerpo de texto de la notificación

Nota: El ejemplo de AppleScript código es sólo eso y no contiene ningún error de manipulación como puede ser apropiado. La responsabilidad recae sobre el usuario para agregar cualquier error de manipulación como puede ser apropiado, necesitaba o quería. Echa un vistazo al tratar de instrucción y de error de instrucción en la Guía de Lenguaje de AppleScript. Véase también el Trabajo con los Errores. Además, el uso de la demora de comandos puede ser necesaria entre los eventos donde apropiada, por ejemplo delay 0.5, con el valor de la demora establecido de forma adecuada.


Con El Manejo De Errores:

tell application "System Events" to ¬
    if exists window 1 of ¬
        process "Notification Center" then ¬
        get value of ¬
            static text of ¬
            scroll area 1 of ¬
            window 1 of ¬
            process "NotificationCenter"

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