9 votes

Utilisation d'AppleScript pour ouvrir une application sans que l'application ne prenne le focus

Utilizo rédacteur iA J'aimerais qu'il s'ouvre en plein écran lors de la connexion, mais malheureusement les développeurs n'ont aucun respect pour les préférences.

J'ai décidé d'écrire un AppleScript que je pourrais ajouter à la liste de démarrage, mais je n'arrive pas à le faire fonctionner correctement. J'aimerais ouvrir un fichier spécifique en utilisant iA Writer à la connexion, en mode plein écran 10.8, mais sans changer le focus de mon bureau normal, ou au moins en me ramenant automatiquement à mon bureau principal après le lancement. EDIT : Voici mon code après les modifications suggérées :

set front_application to front window
tell (application "iA Writer") to open (POSIX file "/PATH/TO/FILE.txt")
activate application "iA Writer"
#EDITED# tell application "System Events" to keystroke "f" using {command down, control down}
#ADDED# delay 1
#ADDED# tell application "System Events" to keystroke "1" using control down
end tell
activate front_application

Ce code ouvre avec succès le fichier avec iA Writer en plein écran, mais bascule sur le nouveau bureau contrôlé par iA Writer, attend un moment, puis bascule à nouveau sur mon bureau principal.

Depuis qu'OS X est passé des espaces aux bureaux, je ne sais même pas s'il est possible d'ouvrir une application en plein écran dans Mountain/Lion sans qu'elle ne vole le focus et n'oblige à changer de bureau.

Un grand merci à @Lauri Ranta pour son aide jusqu'à présent !

Toute aide supplémentaire pour empêcher iA Writer de changer de bureau lorsqu'il devient plein écran serait très appréciée. Merci de votre aide.

3voto

(J'ai supprimé le script original, mais je n'ai pas trouvé mieux non plus).

set fw to front window
do shell script "open ~/Notes/todo.txt -Fa iA\\ Writer"
delay 0.1
tell application "System Events" to tell process "iA Writer"
    perform action "AXPress" of (button 1 where subrole is "AXFullScreenButton") of window 1
end tell
delay 1.5
activate fw

WriteRoom dispose d'une option permettant d'ouvrir les documents dans des fenêtres personnalisées en plein écran. Si cette option est sélectionnée, vous pouvez utiliser quelque chose comme open file.txt -Fjga WriteRoom .

Si quelqu'un d'autre a simplement besoin d'ouvrir une application en arrière-plan, vous pouvez utiliser la fonction open -jg o launch . launch ouvre parfois une fenêtre visible si une application n'est pas ouverte et open -jg si une application est ouverte mais n'a pas de fenêtre.

set b to "com.apple.TextEdit"
tell application "System Events"
    if bundle identifier of processes contains b then
        launch application id b
    else
        do shell script "open -jgb " & b
    end if
end tell

3voto

BallpointBen Points 287

Si vous vous posez encore cette question, utilisez ceci :

do shell script "open -ga 'iA Writer'"

open est une commande du terminal qui permet d'ouvrir des choses. La commande -g permet d'ouvrir l'application en arrière-plan. L'option -a spécifie une application à ouvrir. Si aucun fichier n'est fourni, comme ici, open ouvrira simplement l'application sans fichiers. Si vous souhaitez ouvrir un fichier particulier, vous pouvez utiliser la fonction do shell script "open -ga 'iA Writer' myfile.txt"

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