1 votes

Comment vérifier si un élément d'interface utilisateur spécifique est au premier plan apple script

J'ai beaucoup cherché cela, mais toutes les réponses parlent de la manière de mettre toute une fenêtre (ou dialogue.. qui est toujours une fenêtre en réalité) au premier plan via activate etc.

Mais je n'ai trouvé aucun moyen de savoir si un élément d'interface utilisateur spécifique était sélectionné, au premier plan, etc.

entrer la description de l'image ici

J'ai écrit un script apple qui saute automatiquement vers la création d'une recherche web personnalisée avec alfred, mais le script a échoué lorsque l'onglet des fonctionnalités n'était pas sélectionné par défaut.. voici à quoi ressemble mon code :

[

tell application "System Events"
    keystroke "," using command down
    delay delay_time
    tell process "Alfred Preferences"
        delay delay_time
        -- hack: pour s'assurer que le bouton "Résultats par défaut" n'est pas sélectionné
        -- par défaut, nous sélectionnons d'abord un autre onglet, puis nous sélectionnons l'onglet "fonctionnalités"
        click button "Apparence" de la barre d'outils 1 de la fenêtre 1
        click button "Fonctionnalités" de la barre d'outils 1 de la fenêtre 1
        delay delay_time
        Éléments d'interface utilisateur de la zone de défilement 1 de la fenêtre 1
        -- porter d'abord le menu de gauche au premier plan (voir le hack ci-dessus, sans hack cela ne fonctionnerait parfois que)
        keystroke tab

Je préférerais ne pas utiliser ce vilain hack (qui fait clignoter rapidement l'application entre les onglets à chaque fois que j'appelle le raccourci).. je préférerais plutôt faire une simple déclaration if else.. des idées?

](https://github.com/lobolabs/productivity_scripts/blob/master/alfred_bookmark/alfred_bookmark.applescript#L21-L34)

1voto

wch1zpink Points 6067

Cela fonctionne définitivement sur mon système exécutant Alfred 3. Vous devrez peut-être ajuster les temps de délai, mais tels qu'ils sont maintenant, ce script fonctionne pour moi.

activer l'application "Préférences Alfred"
délai 1,5
dire à l'application "Événements système"
    dire au processus "Préférences Alfred"
        cliquer sur le bouton "Fonctionnalités" de la barre d'outils 1 de la fenêtre "Préférences Alfred" du processus d'application "Préférences Alfred" de l'application "Événements système"
        délai 1
        définir sélectionné de la ligne 3 du tableau 1 de la zone de défilement 1 de la fenêtre "Préférences Alfred" du processus de l'application "Préférences Alfred" de l'application "Événements système" à vrai
        délai 1
        cliquer sur le bouton "Ajouter une recherche personnalisée" du groupe d'onglets 1 de la fenêtre "Préférences Alfred" du processus de l'application "Préférences Alfred" de l'application "Événements système"
    end tell
end tell

0 votes

Quelle est la différence entre "axpress" et l'événement système "click"? Parce que j'ai essayé l'événement click sur une coordonnée et rien ne s'est passé..

0 votes

Je m'efforce de me limiter à l'éditeur de script la plupart du temps, mais quand je suis complètement bloqué et que je ne sais pas quoi faire, j'utilise l'application UI Browser pour sélectionner les éléments dans l'application que j'essaie de scripter et UI Browser générera les commandes AppleScript pour moi et les placera directement dans l'éditeur de script. Donc, pour répondre à votre question, "AXPress" est la commande que UI Browser a générée pour moi.

0 votes

Est-ce que c'est l'application de navigateur UI dont vous parlez? pfiddlesoft.com/uibrowser

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X