Forcer une application pour exécuter l'une de ses options de menu à partir d'un script shell?

apple.stackexchange https://apple.stackexchange.com/questions/4022

  •  16-10-2019
  •  | 
  •  

Question

Y at-il moyen de forcer l'application d'exécuter l'un de ses options de menu s'il n'y a pas une interface ligne de commande disponible?

Peut-être une sorte d'automatisation de chose?

Exemple

Je voudrais lancer la commande « Fichier> Exporter les flux » de NewsFire pour sauvegarder la liste des flux (fichier OPML). J'ai essayé de courir NewsFire par le terminal avec « --help », mais pas de chance.

Voici le script de sauvegarde que j'utilise actuellement, au cas où quelqu'un trouve utile. Il peut être utilisé pour sauvegarder et restaurer l'état de plusieurs machines de Newsfire (pour vous restaurer juste cd ~, puis unzip backup.zip).

#! /bin/bash
#
# Backup NewsFire preferences, feeds and cache (everything)
#

D_DESTFILE=~/Backups/Config/NewsFire.zip

# Don't update archive, create new one
if [ -e "$D_DESTFILE" ]; then
  rm $D_DESTFILE
fi

cd ~
zip -r $D_DESTFILE Library/Application\ Support/NewsFire Library/Caches/org.xlife.NewsFire Library/Preferences/org.xlife.NewsFire.plist
Était-ce utile?

La solution

Ceci est un début d'un AppleScript pour faire l'exportation:

set filename to "test file"

tell application "NetNewsWire" to activate
tell application "System Events"
    tell process "NetNewsWire"
        click menu item "Export Subscriptions…" of menu "File" of menu bar 1
        set value of first text field of first sheet of first window to filename
        click button "Save" of first sheet of first window
    end tell
end tell

tell application "NetNewsWire" to quit

Il enregistre le fichier exporté avec le nom du fichier de jeu à l'endroit qui a été utilisé la dernière fois à faire l'exportation. Il ne sera pas écraser un fichier existant actuellement, vous pouvez alors peut-être enregistrer dans un endroit temporaire et se déplacer avec un script séparé.

Remarque : Ma copie de NetNewsWire avait la commande de menu « Abonnements Exporter ... », pas « Flux d'exportation », mais si le vôtre est différent, il suffit de changer le nom de l'élément de menu en ligne 6.

Modifier pour ajouter :. Vous devez aussi avoir « Activer l'accès pour les périphériques d'aide » dans le panneau de préférences d'accès universel système Actives pour que cela fonctionne

Licencié sous: CC-BY-SA avec attribution
Non affilié à apple.stackexchange
scroll top