Question

  • window of the desktop est plutôt estropié. Ne peut pas obtenir son index.
  • Finder windows ne comprend pas la fenêtre du bureau, donc je ne peux pas vérifier que c'est le premier là.
  • index of the first Finder window est 1 quelle que soit la mise au point d'avoir de bureau. (Aussi longtemps que les autres fenêtres du Finder existent, sinon il échouera.)
Était-ce utile?

La solution

On dirait la propriété insertion location est proche, peut-être assez proche.

insertion location (specifier, r/o) : the container in which a new folder would appear if “New Folder” was selected

tell application "Finder"
    get insertion location
end tell

Result:
folder "Desktop" of folder "nad" of folder "Users" of startup disk of application "Finder"

Il y a une ambiguïté, cependant, si l'accent est mis sur une fenêtre du Finder ouvert dans le dossier de bureau; qui donne le même résultat que si l'accent est mis sur l'arrière-plan de bureau. Mais peut-être que n'a pas d'importance pour ce que vous voulez faire.

Autres conseils

Il semble que vous pouvez vérifier simplement la sélection ...

set desktopIsFrontmost to false
tell application "Finder"
    if selection is {} then set desktopIsFrontmost to true
end tell
return desktopIsFrontmost

En utilisant la réponse de Ned, voici ce que je suis venu avec (dans rb-appscript):

#!/usr/bin/env ruby
# encoding: UTF-8
require 'pathname'
require 'appscript'
include Appscript

path_to_desktop             = Pathname.new "#{ENV['HOME']}/Desktop"
path_of_insertion_location  = Pathname.new app("Finder").insertion_location.get(:result_type => :file_ref).get(:result_type => :alias).path
path_of_first_finder_window = Pathname.new app("Finder").Finder_windows.first.target.get(:result_type => :alias).path rescue nil
is_desktop_the_active_view  = path_to_desktop == path_of_insertion_location && path_of_first_finder_window != path_to_desktop
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top