Script à executer en tâche de fond, pour laisser le mac dispo |
Bienvenue invité ( Connexion | Inscription )
Script à executer en tâche de fond, pour laisser le mac dispo |
24 Sep 2004, 15:04
Message
#1
|
|
The Original Martian & DBCM Groupe : Modérateurs Messages : 6 554 Inscrit : 25 May 2004 Lieu : sɹɐɯ ⅋ ʞɹoʎ ʍǝu ʍǝu ⅋ ǝssᴉns Membre no 19 190 |
Bonjour, j'ai ce petit script :
CODE on do_menu(app_name, menu_name, menu_item, n_times) try tell application app_name activate end tell repeat n_times times tell application "System Events" tell process app_name tell menu bar 1 tell menu bar item menu_name tell menu menu_name click menu item menu_item end tell end tell end tell end tell end tell end repeat return true on error error_message return false end try end do_menu do_menu("Mon Jeu", "Jeu", "Tour Suivant", 1000) qui fonctionne mais seulement quand l'application reste en premier plan... Le problème est que la durée d'execution du script est d'environ 1 heure (à quelques secondes par tour...) et j'aimerais qu'il s'execute en tache de fond et laissant mon Mac disponible Merci -------------------- MBP 16" Sonoma 14.4.1 MBA 13" Sonoma 14.4.1
DBCM III Disciple du MSV Team BOINC Macbidouille But I'm a creep, I'm a weirdo - What the hell am I doin here? - I don't belong here Radiohead Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes - S'il n'y a pas de solution, c'est qu'il n'y a pas de problème - Devises Shadok La connaissance, c'est savoir que la tomate est un fruit. La sagesse, c'est savoir qu'il ne faut pas la mettre dans une salade de fruit. B O'D |
|
|
24 Sep 2004, 19:44
Message
#2
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 1 915 Inscrit : 9 Mar 2004 Membre no 16 011 |
Malheureusement, je crois que c'est impossible, comme system event simule un clic de souris.
Il y a cependant (peut etre) une solution : lancer ton script chez un deuxième utilisateur dont tu ouvres une session avant de basculer sur la tienne. Mais, je ne sais pas si ca marche. Sans indiscrétion, n'est-il pas possible de faire ce que tu cherches a faire sans utiliser system event? Ce message a été modifié par __toto__maison - 24 Sep 2004, 19:45. -------------------- Venez tester votre mac avec bench It! et comparez les résultats
|
|
|
25 Sep 2004, 01:42
Message
#3
|
|
The Original Martian & DBCM Groupe : Modérateurs Messages : 6 554 Inscrit : 25 May 2004 Lieu : sɹɐɯ ⅋ ʞɹoʎ ʍǝu ʍǝu ⅋ ǝssᴉns Membre no 19 190 |
L'application n'étant pas scriptable directement, l'utilisation de system events était la seule solution. Une alternative aurait été de remplacer "click menu item ..." par l'envoi d'un keystroke Pomme-"T" mais je ne suis sur que ça change grand chose.
J'ai essayé le truc du 2e utilisateur, je connaitrais le résultat demain matin . * * * * * * Ça marche ... mais c'est sportif de changer l'utilisateur pendant que le script tourne , il veut vraiment garder le contrôle [to do] insérer un delay entre activate et repeat [/to do] Merci Ce message a été modifié par philjfry - 25 Sep 2004, 08:33. -------------------- MBP 16" Sonoma 14.4.1 MBA 13" Sonoma 14.4.1
DBCM III Disciple du MSV Team BOINC Macbidouille But I'm a creep, I'm a weirdo - What the hell am I doin here? - I don't belong here Radiohead Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes - S'il n'y a pas de solution, c'est qu'il n'y a pas de problème - Devises Shadok La connaissance, c'est savoir que la tomate est un fruit. La sagesse, c'est savoir qu'il ne faut pas la mettre dans une salade de fruit. B O'D |
|
|
25 Sep 2004, 11:38
Message
#4
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 1 094 Inscrit : 24 Jul 2003 Lieu : Berlin Membre no 8 749 |
Je crois que ça se scripte le changement d'utilisateur...
Sinon tu peux faire un delay() au tout début de ton script pour te laisser le temps de basculer. |
|
|
25 Sep 2004, 19:55
Message
#5
|
|
The Original Martian & DBCM Groupe : Modérateurs Messages : 6 554 Inscrit : 25 May 2004 Lieu : sɹɐɯ ⅋ ʞɹoʎ ʍǝu ʍǝu ⅋ ǝssᴉns Membre no 19 190 |
C'est ce que j'ai fait .. et ajouté une petite fonction pour surveiller ce qui se passe de loin en loin
CODE -- source : http://www.apple.com/applescript/guidebook/sbrt/pgs/sbrt.11.htm on write_to_file(this_data, target_file, append_data) try set the target_file to the target_file as text set the open_target_file to ¬ open for access file target_file with write permission if append_data is false then ¬ set eof of the open_target_file to 0 write this_data to the open_target_file starting at eof close access the open_target_file return true on error try close access file target_file end try return false end try end write_to_file -- end of source on printlog(num) copy num & (the name of front window) to mystr set fichier to (((path to public folder) as text) & "Scriptlog:Lelog") write_to_file(mystr, fichier, true) end printlog on do_menu(app_name, menu_name, menu_item, n_times, ecart) try tell application app_name activate end tell delay 10 copy 0 to n copy 0 to i printlog(i) repeat n_times times copy n + 1 to n if n = ecart then -- c'est ici qu'on regrette i++; copy i + 1 to i printlog(i) copy 0 to n end if tell application "System Events" tell process app_name tell menu bar 1 tell menu bar item menu_name tell menu menu_name click menu item menu_item end tell end tell end tell end tell end tell end repeat return true on error error_message return false end try printlog("Fin") end do_menu do_menu("Le_Jeu", "Jeu", "Tour suivant", 20000, 150) Merci -------------------- MBP 16" Sonoma 14.4.1 MBA 13" Sonoma 14.4.1
DBCM III Disciple du MSV Team BOINC Macbidouille But I'm a creep, I'm a weirdo - What the hell am I doin here? - I don't belong here Radiohead Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes - S'il n'y a pas de solution, c'est qu'il n'y a pas de problème - Devises Shadok La connaissance, c'est savoir que la tomate est un fruit. La sagesse, c'est savoir qu'il ne faut pas la mettre dans une salade de fruit. B O'D |
|
|
Nous sommes le : 27th April 2024 - 16:04 |