Afficher a l’aide d’un Apple Script un fichier du Finder
Comment faire sous Xojo pour ouvrir la fenetre du Finder sur le fichier qui sera séléctionné par un chemin envoyez à un script… je suis novice en apple script…
voilà ce que j’ai fait pour l’apple script :
voilà le format du chemin que j’envoi :
et voilà la commande d’appelle dans Xojo :
AfficheFichierDansFinder(path)
mais ça ne fonctionne pas le Finder s’affiche mais le fichier n’est pas afficher et sélectionné comme je l’aurais voulu…
pouvez vous me dire ce que je doit faire pour que ça fonctionne ?
bon résolu, il faut le chemin au complet pour que ça fonctionne…
y a t’il un moyen d’avoir ce chemin complet avec FolderItem ? j’ai rien vu de ce coté là… pour l’instant je met à la dur le nom de mon disque dur juste avant /user/etc
j’ai réussi mais avec un apple script, le problème c’est que folderitem ne met pas le nom du disque dans le chemin, c’est le seul problème que j’ai rencontré…
Une chose importante est de ne pas s’attacher au Finder. Certains utilisateurs utilisent un autre logiciel (tel que Path Finder) au lieu du Finder; votre script pourra agacer ceux qui laissent le Finder fermé, par exemple.
La méthode avec NSWorkspace est faite justement pour utiliser le navigateur de fichiers voulu par l’utilisateur.
je suis allez voir ton lien, ça m’a l’air bien touffu voir compliquer, voilà ce que j’utilise :
Dans le bouton Xojo :
AfficheFichierDansFinder(path)
Dans le script apple script :
onrun {Chemin}
tellapplication “Finder”
activate
reveal Chemin
endtell
endrun
mon seul souci c’est que je met le nom du volume en dur a la mimin dans le code, j’ai pas trouvé le moyen d’avoir son nom par programmation, tu as une idée ?
Apple est de plus en plus réticente à permettre l’utilisation des AppleScript. Je te suggère d’explorer cette possibilité d’appels système offerte par Xojo via les “déclare”.
Il est vrai que le forum n’affiche pas le code présent dans le message de Sam Rowlands de façon très lisible. Je te le remets ci-dessous, espérant que le forum me l’affiche un peu mieux :
Public Sub ShowInFinder(f As FolderItem)
#IF TargetCocoa
// — Created for the forum, April the 4th 2020 by Sam Rowlands
// Source: https://forum.xojo.com/t/displaying-a-file-on-disk/53085/2
declare function NSClassFromString lib "Foundation" _
( className as CFStringRef ) as integer
declare function NSMutableArrayWithCapacity lib "AppKit" selector "arrayWithCapacity:" _
( NSMutableArrayClass as integer, capacity as integer ) as integer
declare sub NSMutableArrayAddObject lib "AppKit" selector "addObject:" _
( NSMutableArray as integer, objectInstance as integer )
declare function NSUrlfileURLWithPathIsDirectory lib "AppKit" selector "fileURLWithPath:isDirectory:" _
( NSURLClass as integer, path as CFStringRef, folder as boolean ) as integer
declare function NSWorkspaceSharedWorkspace lib "AppKit" selector "sharedWorkspace" _
( NSWorkspaceClass as integer ) as integer
declare sub NSWorkspaceActivateFileViewerSelectingURLs lib "AppKit" selector "activateFileViewerSelectingURLs:" _
( shrdWorkSpace as integer, inUrls as integer )
var fileArray as integer = NSMutableArrayWithCapacity( NSClassFromString( "NSMutableArray" ), 1 )
NSMutableArrayAddObject( fileArray, NSUrlfileURLWithPathIsDirectory( NSClassFromString( "NSURL" ), f.nativePath, f.directory ) )
NSWorkspaceActivateFileViewerSelectingURLs( NSWorkspaceSharedWorkspace( NSClassFromString( "NSWorkspace" ) ), fileArray )
#ENDIF
End Sub