[Script automatique] Ouvrir & refermer Safari

Résolu/Fermé
Thom@s
Messages postés
3407
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

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
5137
Date d'inscription
mercredi 20 juillet 2005
Statut
Contributeur
Dernière intervention
27 mai 2022
2 768
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
5137
Date d'inscription
mercredi 20 juillet 2005
Statut
Contributeur
Dernière intervention
27 mai 2022

22 déc. 2005 à 15:18
Merci Gihef pour la correction :)
0
Thom@s
Messages postés
3407
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
5137
Date d'inscription
mercredi 20 juillet 2005
Statut
Contributeur
Dernière intervention
27 mai 2022
2 768
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
3407
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
3407
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
3407
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
5137
Date d'inscription
mercredi 20 juillet 2005
Statut
Contributeur
Dernière intervention
27 mai 2022
2 768 > 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
3407
Date d'inscription
mardi 4 mars 2003
Statut
Modérateur
Dernière intervention
28 septembre 2019
678 > Thom@s
Messages postés
3407
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