Le code que vous avez emprunté ne correspond pas à ce que vous essayez de réaliser, vous pouvez donc le jeter en toute sécurité.
Essayez d'éviter de chercher des solutions qui impliquent la simulation de clics ou de frappes de touches, car ce type de scripts est vraiment spécifique à chaque cas, susceptible de se casser facilement et fréquemment, et interdit toute interaction supplémentaire entre l'utilisateur et l'ordinateur pendant son exécution.
Un fichier .dmg
(ou image disque) est un élément du système de fichiers, ce qui signifie qu'il peut être manipulé à l'aide d'AppleScript. Vous n'avez même pas besoin d'avoir la fenêtre .dmg
ouverte. Il semble que vous connaissiez déjà le nom du fichier que vous souhaitez ouvrir.
Disons que lorsque vous double-cliquez sur votre fichier .dmg
pour le monter (l'ouvrir), le nom du disque qui apparaît sur votre bureau (ou dans la barre latérale d'une fenêtre du Finder) est "my dmg"
(ceci peut être différent du nom du fichier .dmg
lui-même, mais cela peut être le même). Supposons ensuite qu'il y ait un fichier appelé "some file.txt"
contenu dans l'image disque que vous souhaitez ouvrir. Le chemin vers ce fichier se trouvera à : /Volumes/my dmg/some file.txt
Par conséquent, votre script AppleScript entier qui ouvrira le fichier (comme si l'utilisateur l'avait double-cliqué) sera :
tell application id "com.apple.finder" to open the ¬
POSIX file "/Volumes/my dmg/some file.txt"
ou, de manière alternative :
tell application id "com.apple.finder" to open ¬
file "some file.txt" of disk "my dmg"
Ces deux scripts sont essentiellement identiques.
Cependant...
Une limitation à la fois de la méthode que j'ai mentionnée ci-dessus, et de votre idée originale impliquant des clics simulés, est que vous ne pourrez pas dicter que le fichier qui est ouvert doit apparaître sur un autre bureau/écran qui n'est pas celui qui est actif actuellement.
En cliquant sur le fichier, l'écran/bureau actif passe nécessairement à celui sur lequel la fenêtre contenant le fichier est ouverte. Vous pouvez effectuer un changement similaire en AppleScript, de sorte que l'écran/bureau sur lequel le fichier .dmg
est ouvert devienne celui actif :
tell application id "com.apple.finder"
open disk "my dmg"
end tell
Ceci serait incorporé dans le code précédent pour produire un script combiné qui ressemble à ceci :
tell application id "com.apple.finder"
tell disk "my dmg"
open it
tell its container window
open file "some file.txt"
end tell
end tell
end tell