[Script automatique] Ouvrir & refermer Safari

Résolu/Fermé
Thom@s Messages postés 3412 Date d'inscription mardi 4 mars 2003 Statut Modérateur Dernière intervention 28 septembre 2019 - 20 déc. 2005 à 12:52
 toxi - 3 janv. 2007 à 04:15
Salut à tous !

Ne connaissant pas du tout MacOs, je souhaiterais un script automatique (équivalent de .BAT sous Windows ou .SH sous Linux, par exemple), pour :
- Ouvrir Safari avec comme page http://www.google.fr/ (c'est un exemple, bien sûr; j'adapterai),
- Fermer Safari,
- Fermer la fenêtre du script.

Merci aussi de m'indiquer le contenu total du fichier (avec en-tête, etc...), ainsi que le nom de fichier (s'il y a une extension spéciale requise).

Merci beaucoup d'avance !

Thomas
A voir également:

4 réponses

Iger Messages postés 340 Date d'inscription samedi 5 juin 2004 Statut Membre Dernière intervention 20 mars 2007 85
20 déc. 2005 à 15:24
Salut Thomas,
Je ne peux te donner un fichier tout fait vu que j'ai pas de mac.
Alors sur mac, il y a Applescript, c'est peut-être le langage le plus facile à utiliser.

Et presque tous les logiciels ont ce qu'on appelle le dictionnaire, qui est un ensemble de fonctions qu'on peut utiliser pour le piloter. Pour avoir le dictionnaire de safari, il te suffit de glisser son icône sur l'icône de l'éditeur de script.

C'est dans l'éditeur de script que tu écris les script. T'inquiètes, c'est très facile. Ca doit ressembler à ça:
Tell application Safari to activate
    -- ici tu mets les commandes, peut-être du genre:
    open "http://www.google.fr"
end tell
Tell application Safari to exit
end tell


Tu peux compiler le code si tu ne veux pas ouvrir l'éditeur de script à chaque fois.

Fais aussi quelques recherches sur google, il doit y avoir des tutos pour débuter.

Bon courage :)
0
Gihef Messages postés 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023 2 775
22 déc. 2005 à 00:02
Bonjour,

Juste pour préciser :
tell app "Safari" to quit

permet de mettre la commande sur une seule ligne et donc d'éviter le “end tell”
Sinon, ça provoque une erreur.

Tu n'as pas de Mac, mais tu connais bien.

0
Iger Messages postés 340 Date d'inscription samedi 5 juin 2004 Statut Membre Dernière intervention 20 mars 2007 85 > Gihef Messages postés 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023
22 déc. 2005 à 15:18
Merci Gihef pour la correction :)
0
Thom@s Messages postés 3412 Date d'inscription mardi 4 mars 2003 Statut Modérateur Dernière intervention 28 septembre 2019 678
20 déc. 2005 à 16:51
Salut !

Merci pour ta réponse :-)
Mais je n'ai pas de Mac sous la main pour le faire. En fait, je dois le faire sur mon PC (Windows ou Linux), puis l'envoyer par e-mail à quelqu'un qui a un Mac.

J'ai donc fait ça (en faisant comme un bash pour Linux) :
Note: Les deux fichiers seront exécutés l'un à la suite de l'autre.
---------------  fichier "script1.sh" -----------------
#!/bin/bash
safari "http://www.google.fr/"
exit

--------------  fichier "script2.sh" -------------------
#!/bin/bash
killall safari
exit

Ma question serait donc :
Est-ce que, d'après vous, ça marcherait sur MacOS ?

Merci beaucoup d'avance !
0
Gihef Messages postés 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023 2 775
21 déc. 2005 à 22:01
Bonjour,

Deux petits scripts AppleScript, plus faciles à mettre en œuvre que des Shell scripts et qui font ce que tu demandes.
Testés. Fonctionnent.

1- Pour lancer Safari et afficher Google :
tell application "Safari"
	activate
	open location "http://www.google.fr"
end tell


2- Pour quitter Safari
tell application "Safari"
	quit
end tell


Il suffit à ton correspondant de les enregistrer sous « Format de fichier : application » dans l'Éditeur de scripts (voir http://cjoint.com/?mvwachPK3J).
Elles prendront automatiquement l'extension « .app » qui sera masquée.
Elles s'exécuteront alors avec un double-clic et “se” quitteront aussitôt après.
0
Thom@s Messages postés 3412 Date d'inscription mardi 4 mars 2003 Statut Modérateur Dernière intervention 28 septembre 2019 678
22 déc. 2005 à 00:07
Cool, merci beaucoup :)

Je vais de ce pas envoyer ça :-)

A+
0
Thom@s Messages postés 3412 Date d'inscription mardi 4 mars 2003 Statut Modérateur Dernière intervention 28 septembre 2019 678
22 déc. 2005 à 11:12
Re,

Finalement, j'ai fait un "mix" des deux :
tell application "Safari"
	activate
	open location "http://www.google.fr"
tell application "Safari" to quit
end tell


Est-ce que vous pensez que ça marchera ?

Merci d'avance ! :)

A+
0
Iger Messages postés 340 Date d'inscription samedi 5 juin 2004 Statut Membre Dernière intervention 20 mars 2007 85 > Thom@s Messages postés 3412 Date d'inscription mardi 4 mars 2003 Statut Modérateur Dernière intervention 28 septembre 2019
22 déc. 2005 à 15:13
Plutôt comme ça:
tell application "Safari"
	activate
	open location "http://www.google.fr"
        quit
end tell

Il va donc ouvrir Safari, google, et quitter, sans qu'on ne puisse même pas naviguer d'abord ;-)
0
Gihef Messages postés 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023 2 775 > Iger Messages postés 340 Date d'inscription samedi 5 juin 2004 Statut Membre Dernière intervention 20 mars 2007
22 déc. 2005 à 18:35
Content que tu aies pu t'en servir tout de suite :)
0
Thom@s Messages postés 3412 Date d'inscription mardi 4 mars 2003 Statut Modérateur Dernière intervention 28 septembre 2019 678 > Thom@s Messages postés 3412 Date d'inscription mardi 4 mars 2003 Statut Modérateur Dernière intervention 28 septembre 2019
22 déc. 2005 à 15:15
OK, merci beaucoup, je vais essayer ça :)

A+ :-)
0
Bonjour,
J'ai une question, j'utilise ce script pour quitter l'application Microsoft Entourage de manière automatisée avant un backup. Mais parfois, une action réseau est en cours et une boite de dialogue apparait pour demander si on veut interrompre la tâche en cours ce qui met en échec le script. J'aimerais que lorsque celà se produise, le système réponde "Non" dans la boite de dialogue, qu'il attende la fin de l'action réseaux, par exemple 30 seconde avant de fermer l'application. Est ce possible? si oui comment le lui dire?
Merci
0