window of the desktop
est plutôt estropiée. Impossible d'obtenir sonindex
.Finder windows
n'inclut 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, quel que soit le bureau ayant le focus. (Aussi longtemps que d'autres fenêtres Finder existent, sinon il échouera.)
Répondre
On dirait que la propriété insertion location
se rapproche, 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; cela donne le même résultat que si l'accent est mis sur le fond d'écran. Mais peut-être que cela n'a pas d'importance pour ce que vous voulez faire.
Il semble que vous pouvez simplement vérifier la sélection ...
set desktopIsFrontmost to false
tell application "Finder"
if selection is {} then set desktopIsFrontmost to true
end tell
return desktopIsFrontmost
Alors que cela dépend de ce que l'OP veut dire par "focus", normalement "focus" et "selection" sont des concepts différents. Par exemple, si vous cliquez sur un élément (un dossier ou un fichier, disons) sur le bureau, cela signifie que l'arrière-plan du bureau a le focus (aucune autre fenêtre du Finder n'est sélectionnée) mais la propriété 'selection' reflète le ou les éléments actuellement sélectionné, comme si vous les sélectionniez dans une fenêtre du Finder qui était active. Chaque fenêtre du Finder, y compris la pseudo-fenêtre de l'arrière-plan du bureau, a sa propre valeur de sélection actuelle. –
Je suis d'accord Ned. Ma méthode manque si quelque chose est sélectionné sur le bureau. – regulus6633
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
- 1. Vérifier si un objet a le focus
- 2. comment interroger si le flash a le focus
- 3. Flex: Comment savoir si TextArea a le curseur clignotant
- 4. wxPython: Comment savoir quel widget a le focus?
- 5. Comment savoir si le ticket Kerberos a expiré
- 6. Comment savoir si le client a fermé la connexion
- 7. Comment savoir quel élément a le focus sur le chargement de la page? Est-ce possible?
- 8. Comment dire Finder pour sélectionner/révéler plusieurs fichiers dans AppleScript
- 9. Comment savoir quelle fenêtre a le focus et comment la changer?
- 10. incapable de copier le dossier de presse sur le bureau en utilisant AppleScript
- 11. Dans Qt4, existe-t-il un moyen de savoir à l'intérieur d'un widget si le focus a été perdu?
- 12. Applescript: Obtenir le répertoire est tombé sur
- 13. Comment savoir quand un UIView obtient le focus
- 14. Comment savoir si jQuery a une requête Ajax en attente?
- 15. C#: Détecter quelle application a le focus
- 16. Quelle application a le focus clavier?
- 17. Comment puis-je savoir quel contrôle a le focus dans Windows Forms .NET?
- 18. La banque a renvoyé la référence de l'action tell Finder dans Applescript
- 19. Cocoa - Open File Package dans le Finder
- 20. wpf listview a perdu le focus
- 21. Forcer le focus pour les applications de bureau intégrées .NET
- 22. détecter si le bureau est verrouillé
- 23. Comment puis-je obtenir l'icône du bureau utilisée dans le Finder?
- 24. Objective-C permet de savoir quelle application a le focus (c'est-à-dire si l'utilisateur utilise actuellement) sur un Mac?
- 25. Déterminer quel élément a le focus
- 26. Trouver quel composant asp.net a le focus
- 27. web workers: comment savoir si le navigateur le supporte?
- 28. Python/X11: savoir si l'utilisateur change de bureau virtuel
- 29. Comment déterminer si une zone de texte dans un formulaire Windows a le focus
- 30. comment avoir un bouton ne pas tirer sur la touche espace si elle a le focus?
Cela pourrait bien faire il. Le plus drôle est que je l'ai déjà utilisé. – kch