[AS] Action en quittant, Est-ce possible ? |
Bienvenue invité ( Connexion | Inscription )
[AS] Action en quittant, Est-ce possible ? |
12 Apr 2008, 09:46
Message
#1
|
|
Adepte de Macbidouille Groupe : Membres Messages : 74 Inscrit : 6 Jul 2006 Membre no 64 021 |
Bonjour à tous,
Je voudrais pouvoir afficher une petit fenêtre avec écrit "au revoir" lorsque mon application AS quitte. Dans le style : CODE en quittant tell application "Finder" display dialog "au revoir" end tell end en quittant Je pensais que la commande on quit me le permettrait, mais apparemment cela ne fonctionne pas Auriez-vous une idée ? Merci d'avance |
|
|
12 Apr 2008, 10:26
Message
#2
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 098 Inscrit : 4 Oct 2005 Membre no 47 253 |
CITATION(lynnrag @ 12 Apr 2008, 10:46) [snapback]2632070[/snapback] Bonjour à tous, Je voudrais pouvoir afficher une petit fenêtre avec écrit "au revoir" lorsque mon application AS quitte. Dans le style : CODE en quittant tell application "Finder" display dialog "au revoir" end tell end en quittant Je pensais que la commande on quit me le permettrait, mais apparemment cela ne fonctionne pas Auriez-vous une idée ? Merci d'avance Bonjour CODE display dialog "Au revoir" buttons {"OK"} default button 1 with icon 0 giving up after 15 with title "Je quitte" buttons {"OK"} default button 1 = pour une temporisation et que le bouton soit sélectionné pour pouvoir utiliser la touche Return with icon 0 = Pour affichage d'une icône giving up after 15 = Après 15 secondes je quitte with title "Je quitte" = Titre de la fenêtre. PS: Après le bouton c'est des options donc non obligatoires. si la fenêtre d'alerte ne s'affiche pas a certain moment tu la fait précéder par: CODE tell me to activate comme ça tu est sur quelle soit sélectionné et en premier plan. @+ Ce message a été modifié par sucellus - 12 Apr 2008, 11:00. -------------------- Impossible de vous dire mon âge, il change tout le temps.
iMac 27" Intel core i5 3,1 Gh Mémoire vive 16 Go Mountain Lion 10.8.4 |
|
|
12 Apr 2008, 14:28
Message
#3
|
|
Adepte de Macbidouille Groupe : Membres Messages : 74 Inscrit : 6 Jul 2006 Membre no 64 021 |
Bonjour sucellus,
Merci pour ton aide, mais cette fenêtre va t-elle apparaitre au moment où je vais quitter mon application ? |
|
|
12 Apr 2008, 15:10
Message
#4
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 098 Inscrit : 4 Oct 2005 Membre no 47 253 |
CITATION(lynnrag @ 12 Apr 2008, 15:28) [snapback]2632345[/snapback] Bonjour sucellus, Merci pour ton aide, mais cette fenêtre va t-elle apparaitre au moment où je vais quitter mon application ? Si c'est une application AppleScript ou une application qui gère les AppleScripts aucun problème. Mais pour pouvoir te répondre il faut savoir quelle est l'application? @+ Ce message a été modifié par sucellus - 12 Apr 2008, 15:11. -------------------- Impossible de vous dire mon âge, il change tout le temps.
iMac 27" Intel core i5 3,1 Gh Mémoire vive 16 Go Mountain Lion 10.8.4 |
|
|
12 Apr 2008, 15:57
Message
#5
|
|
Adepte de Macbidouille Groupe : Membres Messages : 74 Inscrit : 6 Jul 2006 Membre no 64 021 |
Oui, c'est bien une application applescript.
Cette application se trouvera dans un .dmg Or, je voudrais éjecter le .dmg après que l'application ait quitté ... mais à chaque fois, l'éjection est refusée car l'application n'a pas encore quitté lorsque l'ordre d'éjecter est donné. Donc il faudrait que l'éjection se fasse une fois l'application quittée. |
|
|
12 Apr 2008, 17:09
Message
#6
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 098 Inscrit : 4 Oct 2005 Membre no 47 253 |
CITATION(lynnrag @ 12 Apr 2008, 16:57) [snapback]2632410[/snapback] Oui, c'est bien une application applescript. Cette application se trouvera dans un .dmg Or, je voudrais éjecter le .dmg après que l'application ait quitté ... mais à chaque fois, l'éjection est refusée car l'application n'a pas encore quitté lorsque l'ordre d'éjecter est donné. Donc il faudrait que l'éjection se fasse une fois l'application quittée. La je connaît pas, démonter un DMG c'est bon mais commandé par un script se trouvant dans celui-ci. Tu auras toujours le problème que le script est quitté pour faire le démontage. @+ -------------------- Impossible de vous dire mon âge, il change tout le temps.
iMac 27" Intel core i5 3,1 Gh Mémoire vive 16 Go Mountain Lion 10.8.4 |
|
|
Guest_JackJr300_* |
13 Apr 2008, 00:20
Message
#7
|
Guests |
Bonjour,
CITATION(lynnrag @ 12 Apr 2008, 15:57) [snapback]2632410[/snapback] Cette application se trouvera dans un .dmg Or, je voudrais éjecter le .dmg après que l'application ait quitté ... mais à chaque fois, l'éjection est refusée car l'application n'a pas encore quitté lorsque l'ordre d'éjecter est donné. Il suffit de mettre ce code à la fin de ton script, la commande dans le do shell script s'exécuterera en arrière plan, il attendra que ton application quitte, après il éjectera le DMG. CODE tell application "Finder" to tell file (path to me) to set {this_Volume, app_name} to {POSIX path of (get its disk as text), name} if app_name ends with ".app" then set app_name to text 1 thru -5 of app_name set the_IDentifier to do shell script "/usr/bin/hdiutil info | /usr/bin/grep '" & text 1 thru -2 of this_Volume & "'$ | /usr/bin/sed 's/\t.*//'" if the_IDentifier is not "" then do shell script "/bin/sh -c '/usr/bin/osascript <<EOT tell application \"System Events\" to repeat while exists process \"" & app_name & "\" delay 2 end repeat EOT sleep 1 /usr/bin/hdiutil unmount \"" & the_IDentifier & "\" -force ' > /dev/null 2>&1 &" end if La commande hdiutil fonctionne seulement pour les images disque. Ce message a été modifié par JackJr300 - 13 Apr 2008, 00:21. |
|
|
13 Apr 2008, 06:20
Message
#8
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 098 Inscrit : 4 Oct 2005 Membre no 47 253 |
CITATION(JackJr300 @ 13 Apr 2008, 01:20) [snapback]2632779[/snapback] Il suffit de mettre ce code à la fin de ton script, la commande dans le do shell script s'exécuterera en arrière plan, il attendra que ton application quitte, après il éjectera le DMG. Bonjour L'éjection marche parfaitement avec des images disques Test.dmg ou Test.sparseimage. Mais si je veut éliminer les fichiers images de disques qui sont créé que pour tester, la corbeille me répond: Impossible d'effectuer l'opération : l'élément "Test.dmg" est utilisé. Impossible d'effectuer l'opération : l'élément "Test.sparseimage" est utilisé. Donc je vide la corbeille en mode terminal. @+ Ce message a été modifié par sucellus - 13 Apr 2008, 10:13. -------------------- Impossible de vous dire mon âge, il change tout le temps.
iMac 27" Intel core i5 3,1 Gh Mémoire vive 16 Go Mountain Lion 10.8.4 |
|
|
13 Apr 2008, 10:07
Message
#9
|
|
Adepte de Macbidouille Groupe : Membres Messages : 74 Inscrit : 6 Jul 2006 Membre no 64 021 |
J'ai pu trouver quelque chose d'intéressant ce matin.
En partant sur la piste de JackJr300, si je crée un .term avec le code suivant : CODE osascript -e 'eject disk "monDmg" Que je place ce .term dans monDmg, et que je lance le .term, chez moi ça marche, le.dmg est éjecté , car apparemment les actions lancées par osascript sont indépendantes du contenu du dmg. Ce message a été modifié par lynnrag - 13 Apr 2008, 10:08. |
|
|
13 Apr 2008, 10:27
Message
#10
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 098 Inscrit : 4 Oct 2005 Membre no 47 253 |
CITATION(lynnrag @ 13 Apr 2008, 11:07) [snapback]2632906[/snapback] J'ai pu trouver quelque chose d'intéressant ce matin. En partant sur la piste de JackJr300, si je crée un .term avec le code suivant : CODE osascript -e 'eject disk "monDmg" Que je place ce .term dans monDmg, et que je lance le .term, chez moi ça marche, le.dmg est éjecté , car apparemment les actions lancées par osascript sont indépendantes du contenu du dmg. Bonjour Je suis pas spécialiste du terminal alors la .term tu pourrais indiquer exactement ce que tu as fait, pour un novice comme moi tenter de comprendre. Comment créer un .term et lancer ce dernier? Merci @+ -------------------- Impossible de vous dire mon âge, il change tout le temps.
iMac 27" Intel core i5 3,1 Gh Mémoire vive 16 Go Mountain Lion 10.8.4 |
|
|
13 Apr 2008, 14:24
Message
#11
|
|
Adepte de Macbidouille Groupe : Membres Messages : 74 Inscrit : 6 Jul 2006 Membre no 64 021 |
Alors écoute, je ne suis pas expert non plus ... voilà comment j'ai fait.
Je te conseille d'utiliser Tiger plutôt que Leopard, car c'est plus compliqué avec ce dernier. Tu lances Terminal, et tu vas dans Fichier -> Enregistrer Sous. Là, tu nommes ton futur .term, tu le mets où tu veux, et surtout tu coches "Exécuter cette commande (spécifier le chemin complet). Dans le champ qui n'est plus grisé, tu tapes la (les) commandes que devra éxécuter Terminal. Par exemple : CODE osascript -e 'eject disk "monDmg"' Tu vas te retrouver avec un .term, sur lequel tu double-clique pour que le Terminal fasse ce qu'on lui a dit de faire. Le plus chouette la-dedans (enfin j'espère que ça marche vraiment, et que je n'ai pas fait d'erreurs), c'est aue si tu mets ce .term dans monDmg, et que tu l'éxécutes dedans, monDmg s'éjecte bien. |
|
|
Nous sommes le : 20th April 2024 - 00:27 |