IPB

Bienvenue invité ( Connexion | Inscription )

> 

Attention, Mavericks n’est pas Mac OS 9, mais OS X 10.9
Pour tout problème concernant Mavericks, merci de poster dans le forum Mac OS X / OS X

 
Reply to this topicStart new topic
> comment simuler la touche return par applescript sur OS9 ?
Options
JB7
posté 15 May 2024, 10:12
Message #1


Nouveau Membre


Groupe : Membres
Messages : 6
Inscrit : 15 May 2024
Membre no 218 962



Je lance cette bouteille à la mer parce que je ne m’en sors pas.

Je suis sur un MacBook Pro de 2014 OS 10.13.6

J’utilise sheepshaver pour émuler OS 9.0.4 pour utiliser une application (limelight) et notamment sa fonction d’importation qui est scriptable, c’est à dire qu’applescript sait la déclencher.
Le bout de script qui m’intéresse bien et qui marche, est le suivant :

tell application "Finder" to set outfile to "MacOS9:Desktop Folder:fichierdesortie"
tell application "Finder" to set aFile to "Unix:titi:Tititext:Fichier_01.Text"

tell application "LimeLight_P"
activate
import file aFile to file outfile
end tell

Et voilà le gros « MAIS » qui me bloque complètement.
La fonction d’import ouvre une boite de dialogue et je dois cliquer sur « OK » (elle est émise par limelight, je ne peux rien y changer).
Je voudrais que le script valide lui-même ce OK (ce sera toujours la bonne réponse à la boite de dialogue).

J'ai fouillé la toile, j'ai la vague impression que quickeys pourrait m'aider...
J'ai aussi compris que sur OSX c'est assez simple (il suffit de passer par system event) mais ça n'existe pas sur OS9...
Donc je suis largué (et pas très doué).
Alors je me dis qu'avec un peu de chance il y a ici quelqu'un pour qui c'est super facile...



Go to the top of the page
 
+Quote Post
baron
posté 15 May 2024, 11:08
Message #2


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 396
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Bonjour et bienvenue ! smile.gif

Tu ne peux pas utiliser une commande comme ceci ?
Code
click button "OK"

unsure.gif


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
JB7
posté 15 May 2024, 13:09
Message #3


Nouveau Membre


Groupe : Membres
Messages : 6
Inscrit : 15 May 2024
Membre no 218 962



Chic une réponse ! smile.gif

click button "OK"
donne une erreur de syntaxe à la compilation.
("Exected end of line, etc. but found identifier.")
j'ai donc supposé que ça ne marche pas sur OS9. Aurais-je faux ?

sur OSX, la solution serait :
tell application "System Events"
key code 36
end tell


Ce message a été modifié par JB7 - 15 May 2024, 13:25.
Go to the top of the page
 
+Quote Post
baron
posté 15 May 2024, 15:56
Message #4


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 396
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Comme disent les Anglais, la preuve est dans le pudding. Je ne suis pas en mesure de tester la commande mais si tu dis que ça ne marche pas… 


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
ch21
posté 15 May 2024, 21:23
Message #5


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 12 355
Inscrit : 4 Nov 2003
Lieu : 21000 ou 22740
Membre no 11 306



Et en enregistrant cette séquence ?

Il me semble que c'etait possible aussi avec OS9.
Là tu chope ce qui se passe et tu l'intègres à ta sauce


--------------------
de l'Apple IIGS (1987) en GS/OS System 6.0.1 au MBP (2012) en Mojave et Mac Mini I7 (2012) en Mojave et Ventura avec OCLP
Go to the top of the page
 
+Quote Post
JB7
posté 16 May 2024, 01:05
Message #6


Nouveau Membre


Groupe : Membres
Messages : 6
Inscrit : 15 May 2024
Membre no 218 962



oui, j'ai bien commencé comme ça.
J'ai tout simplement enregistré la séquence.
Mais l'action "OK" n'a pas été restituée dans le script.


Je remarque par contre que si "click button" ne passe pas à la compilation, "click at" et "click on" sont acceptés.
Pour utiliser "click at", il me faut les coordonnées du bouton dans la fenêtre et si "click on" est bien l'ancienne version de "click button", alors il me reste à trouver le moyen de lui désigner correctement le nom du bouton.

Mais là encore, je trouve des solutions pour faire ça avec OSX (UIElementInspector, ). Sur OS9, je ne trouve rien.
Go to the top of the page
 
+Quote Post
baron
posté 16 May 2024, 14:05
Message #7


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 396
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Peut-être :
Code
click on "OK"
Ou :
Code
click on button "OK"



--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
baron
posté 16 May 2024, 16:41
Message #8


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 396
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Quelques suggestions de la part d'un membre discret :
Citation (Zeltron54)
Bonjour, Baron

Je ne me souviens plus très bien des commandes disponibles sur os 9 !

Je tenterais
Code
Tell application "system events"
tell process "Nom de l'appli"

keycode 36  ou 76

end tell
end tell


ou peut être en lieu et place de (tell process "Nom de l'appli") essayer avec (tell front window)

Je n'ai pas de possibilité d'essayer mac os 9...

Désolé de ne pas pouvoir aider plus.

P.S.
J'ai oublié,

essayer aussi

après le
Code
tell front window


Code
return

ou
Code
keystroke return

ou
Code
click button "OK"


A vérifier si dans le dictionnaire d'applescript pour os 9 il existe bien le (system events) ou éventuellement sous un autre nom !


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
JB7
posté Hier, 02:08
Message #9


Nouveau Membre


Groupe : Membres
Messages : 6
Inscrit : 15 May 2024
Membre no 218 962



Alors déjà, que Zeltron54 soit remercié pour avoir écrit « j’ai oublié ».
Ça me donne espoir, car j’en venais à douter que mon problème ait une solution.
Je peux continuer à chercher en me disant que la solution existe et qu’elle est probablement toute simple…


Je note aussi cette remarque : « A vérifier si dans le dictionnaire d'applescript pour os 9 il existe bien le (system events) ou éventuellement sous un autre nom ! »
J’ai cherché pendant des heures une réponse à cette question. Sur mon système rien ne s’appelle « system event » et j’ai cherché dans tout ce qui semble scriptable en vain. Sur internet, je n’ai pas trouvé ce qui pouvait remplacer « system event » sur OS9.
J’ai eu espoir avec le dictionnaire du finder, mais je ne comprend pas grand chose à la mine d’informations qu’il contient. En tout cas, pas de click, return ou keystroke...
Les exemples de l'aide applescript ne traitent pas non plus la question...


J’ai simplifié le problème pour être certain de ne pas être pollué par mon appli.
Je test les solutions sur une boite de dialogue basique :

Lorsque je teste
display dialog "Hello" buttons {"Cancel", "OK"} default button "OK"
tell front window
return
end tell

La boite de dialogue s’affiche et attend que l’utilisateur la valide.
Intuitivement, ce n’est pas surprenant… comment dire au script de lire la ligne suivante avant que la boite de dialogue n’ait été franchie ?

Ce message a été modifié par JB7 - Hier, 05:49.
Go to the top of the page
 
+Quote Post
Zeltron54
posté Hier, 06:46
Message #10


Adepte de Macbidouille
*

Groupe : Membres
Messages : 174
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Bonjour, JB7

Pour reprendre ton exemple, afin que le programme continu il faut ajouter : giving up after délai
ce qui donne pour un délai d'une seconde.

Code
display dialog "Hello" buttons {"Cancel", "OK"} default button "OK" giving up after 1
tell front window
    return
end tell


Mais je ne sais pas s'il valide le bouton sélectionné

Par contre aucune idée si cette fonction existait sur OS 9
Bon courage.

Ce message a été modifié par Zeltron54 - Hier, 06:48.


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
JB7
posté Hier, 12:55
Message #11


Nouveau Membre


Groupe : Membres
Messages : 6
Inscrit : 15 May 2024
Membre no 218 962



Je ne sais pas si en faisant ainsi le bouton OK est validé, mais l'instruction "return" n'est pas opérante puisque la boite de dialogue s'est en fait auto-validée avant que la ligne return soit atteinte.
Quoi qu'il en soit, ce n'est pas transposable à mon problème. J'ai essayé au cas où, mais "giving up after" ne peut pas être ajouté à mon instruction d'import.

Ce message a été modifié par JB7 - Hier, 12:56.
Go to the top of the page
 
+Quote Post
Zeltron54
posté Hier, 13:19
Message #12


Adepte de Macbidouille
*

Groupe : Membres
Messages : 174
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Alors, désolé
Ne pouvant pas tester (pas de mac sous os9), je ne sais même pas si cette fonction était disponible sous cet OS.

Peut être qu'un autre membre du forum pourra t'aider, je pense entre autre à PBell ...

Ce message a été modifié par Zeltron54 - Hier, 13:19.


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
baron
posté Hier, 16:01
Message #13


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 396
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



PBell m'a dit que lui non plus n'avait plus assez de souvenirs de Mac OS9, ni de machine tournant avec… sad.gif


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
Zeltron54
posté Hier, 16:38
Message #14


Adepte de Macbidouille
*

Groupe : Membres
Messages : 174
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Je pense que JB7 va être contraint d'abandonner l'idée de vouloir valider cette demande et chercher une solution pour éviter qu'elle apparaisse.
Voir dans le dictionnaire de l'appli, si lors de l'appel d' import, en précisant le fichier à importer, si on peut éviter cette demande de validation.

Mais utiliser de nos jour OS 9, qui à plus de 25 ans, est-ce bien raisonnable ? et n'existe t'il pas un logiciel sous mac OS X qui ferait le job ?

Bon courage .


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
ch21
posté Hier, 20:20
Message #15


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 12 355
Inscrit : 4 Nov 2003
Lieu : 21000 ou 22740
Membre no 11 306



Citation (JB7 @ 17 May 2024, 03:08) *
Lorsque je teste
display dialog "Hello" buttons {"Cancel", "OK"} default button "OK"
tell front window
return
end tell

La boite de dialogue s’affiche et attend que l’utilisateur la valide.
Intuitivement, ce n’est pas surprenant… comment dire au script de lire la ligne suivante avant que la boite de dialogue n’ait été franchie ?

Et "enter" au lieu de "return" ?


--------------------
de l'Apple IIGS (1987) en GS/OS System 6.0.1 au MBP (2012) en Mojave et Mac Mini I7 (2012) en Mojave et Ventura avec OCLP
Go to the top of the page
 
+Quote Post
JB7
posté Aujourd'hui, 00:51
Message #16


Nouveau Membre


Groupe : Membres
Messages : 6
Inscrit : 15 May 2024
Membre no 218 962



il me semble que enter est plus juste que return parce que j'ai vu par ailleurs que return sert à autre chose (retourner un résultat).

Je veux dire que la ligne de script enter n'est lue que après validation manuelle de la boite de dialogue.

il manque surement une instruction...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 18th May 2024 - 06:09