AppleScript: Finder: Comment puis-je savoir si le Bureau a le focus?
-
28-09-2019 - |
Question
-
window of the desktop
est plutôt estropié. Ne peut pas obtenir sonindex
. -
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.)
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