5 votes

AppleScript : Comment créer une nouvelle fenêtre Finder pour un dossier déjà ouvert ?

Le problème, fuera de d'AppleScript :

Témoigner du problème 1 , procédez comme suit :

  • Double-cliquez sur un dossier existant sur le Bureau. Cette opération ouvre le dossier dans Finder.app.

  • Retournez sur le Bureau et double-cliquez à nouveau sur ce même dossier.

  • Au lieu d'un deuxième en cours de création, la fenêtre créé antérieurement passe au premier plan.


Une solution de contournement, fuera de d'AppleScript :

Alors, que faire si l'on veut deux Finder Windows du même dossier ?

Un kluge existe :

Créez une nouvelle fenêtre du Finder en ouvrant n'importe quel autre dossier. À partir de cette nouvelle fenêtre, si vous naviguez vers le dossier souhaité, vous pourrez changer cette fenêtre pour le dossier souhaité et vous aurez deux Fenêtres de ce dossier.

Pour naviguer vers le dossier souhaité dans une nouvelle fenêtre du Finder, cualquier fonctionnera :

  • Cliquez sur le dossier, s'il est marqué d'un signet dans l'onglet barre latérale (s'il est activé, il est situé à gauche de la fenêtre).

  • Cliquez sur le dossier, s'il existe dans l'espace de travail. barre de chemin (si elle est activée, elle se trouve en bas de la fenêtre).

  • Utilisez les fonctions intégrées de la fenêtre barre de recherche .

  • Vous pouvez également naviguer manuellement vers le dossier.


Le problème, dans AppleScript :

Le code AppleScript suivant ouvre un dossier dans une nouvelle fenêtre du Finder :

set targetFolder to POSIX file "/Users/Me/Desktop/MyFolder"

tell application "Finder"
    open targetFolder
    activate
end tell

De la même manière que le Finder se comporte de manière non programmatique (comme défini ci-dessus), si vous exécutez ce code une seconde fois (sans fermer la fenêtre Finder précédemment créée), la fenêtre précédemment créée sera mise au premier plan.


La solution AppleScript souhaitée :

Voici le comportement souhaité :

  • Si targetFolder existe déjà dans cualquier fenêtre ouverte du Finder (y compris toute fenêtre réduite du Finder), j'aimerais que l'AppleScript crée un fichier nouvelle fenêtre pour les mêmes targetFolder (c'est-à-dire une fenêtre dupliquée).

Idéalement, j'aimerais que la fenêtre dupliquée soit créée, sans de recourir à l'"astuce" que j'ai décrite plus haut (c'est-à-dire d'ouvrir une fenêtre arbitraire de l'ordinateur). autres avant d'ouvrir le dossier souhaité). Toutefois, je comprendrai si cela n'est pas possible (c'est-à-dire si la méthode programmatique doit reproduire la méthode manuelle).


<strong>1. </strong>Je comprends que ce comportement n'est en aucun cas un bogue ou un "vrai" problème. Apple a clairement programmé cette action délibérément ; ils ont probablement déterminé que la plupart des gens n'ont pas besoin ou ne veulent pas de fenêtres redondantes dans le Finder.


OS X El Capitan, version 10.11.6.


5voto

gotube Points 101

Une façon simple de créer une nouvelle fenêtre du Finder sur le bureau.

set myTarget to ((path to desktop) as text)

tell application "Finder" to make new Finder window to folder myTarget

De https://macscripter.net/viewtopic.php?id=36300

2voto

unlocked2412 Points 169

Je pense que ce code fait ce que vous voulez.

Code :

set targetFolder to POSIX file "/Users/Me/Desktop/MyFolder"

tell application "Finder"
    set finderFolder to item targetFolder
    set lstTargets to target of every Finder window
    if {finderFolder} is in lstTargets then
        set target of (make new Finder window) to targetFolder
    end if
end tell

0voto

Cette solution vous permet d'atteindre votre objectif, mais elle fait appel à une solution de contournement. J'ai essayé de définir la propriété "target" lorsque j'ai créé la fenêtre, mais cela n'a eu aucun effet. J'ai laissé cette partie dans le script mais commentée pour votre référence.

set targetFolder to ((path to desktop) as text) & "testFolder:"

tell application "Finder"
    set aWin to make new Finder window --with properties {target:targetFolder}
    set aWin's target to targetFolder
end tell

J'ai également essayé en appelant sur la ligne de commande avec do shell script, mais cela a eu le même effet que vous avez énuméré dans "Le problème" ci-dessus.

-2voto

Utiliser le reveal pour éviter le comportement de la commande open commande :

set targetFolder to POSIX file "/Users/Me/Desktop/MyFolder"
tell application "Finder"
    reveal targetFolder
    activate
end tell

Attention : la fenêtre s'ouvre toujours en mode colonne.

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