Pages : 1
#1 Le 14/10/2006, à 14:49
- Lestat
Script avec zenity
Bonjour,
J'essaie de programmer un script qui permet de lancer une connexion Internet (avec un fast 800).
Le principe de mon script est le suivant :
- une icône sur le bureau permet de lancer le script.
- Une boîte de dialogue créée avec zenity s'ouvre pour donner confirmation que la connexion est établie.
- le script ouvre firefox.
A partir de là, je ne sais comment il faut faire. J'aimerais que le script "reste en arrière plan" pour que, lorsque firefox est fermé, une boîte de dialogue avec zenity s'ouvre pour demander si la fermeture est une erreur (dans ce cas firefox s'ouvre de nouveau) ou si il faut se déconnecter (dans ce cas la commande de déconnexion s'exécute).
Jusqu'à présent, j'avais fait deux scripts : un pour se connecter, l'autre pour se déconnecter.
Connexion :
#!/bin/sh
pppd call ueagle-atm
zenity --info --title "Connexion internet" --text "Vous êtes connecté."
firefox
Déconnexion :
#!/bin/sh
zenity --question --title "Déconnection Internet" --text "Etes-vous sûr de vouloir vous déconnecter d'Internet ?"
if true ;
then
killall pppd
else
firefox
fi
Le script de connexion fonctionne, la boîte de dialogue s'ouvre sans problème. Par contre, comme je l'ai dit, j'aimerai que le script détecte la fermeture de firefox. Je ne sais pas comment faire ça. Cela permettrait aussi de n'utiliser qu'un script.
Il y a un autre problème aussi. Lorsque j'exécute le script pour la déconnexion, la boite de dialogue s'ouvre, mais que je clique sur Ok ou Annuler, le résultat est le même, c'est à dire qu'il déconnecte mais il n'ouvre pas firefox si on clique sur Annuler.
Peut-etre faut-il changer la condition et mettre ca de cette manière : (vu sur un autre post et pas la possibilité de tester maintenant)
choix=`zenity --question --title "Déconnection Internet" --text "Etes-vous sûr de vouloir vous déconnecter d'Internet ?"`
if [ $choix != 0]
...
Merci d'avance pour votre aide précieuse.
Dernière modification par Lestat (Le 14/10/2006, à 14:52)
Hors ligne
#2 Le 14/10/2006, à 14:55
- sidney_v
Re : Script avec zenity
Pour savoir si Firefox est ouvert, tu peux toujours lancer à intervalle répétés la commande :
ps aux | grep firefox | grep /usr
Si la commande renvoi quelque chose, c'est que firefox est lancé.
Je n'en sais pas plus, mais peut-être que bash montre ses limites ?
Membre de l'April - « promouvoir et défendre le logiciel libre » - www.april.org
Hors ligne
#3 Le 21/10/2006, à 13:23
- nahelou
Re : Script avec zenity
Un petit script qui devrait faire ce que tu veux :
#!/bin/bash
#Petit script écrit rapidement par nahelou
#Il permet d'établir une connexion à la demande, et utilise des boites de dialogues GTK / gnome
#Ce script est librement modifiable
#
#Pensez à rendre ce script exécutable (un petit `chmod +x connexion-internet.sh` par exemple dans un term)
#On pose la question
zenity --question --title="Test" --text="Se connecter à Internet ?"
#On vérifie si l'utilisateur veut se connecter.
if [ $? == 1 ];
then exit
# bon, je pense que c'est suffisament clair : exit désigne la sortie (l'utilisateur ne veut pas se connecter)
fi
#Lancer la procédure de connexion à internet. Cela affiche une petite barre de progression qui indique à l'utilisateur de patienter un peu
pppd call ueagle-atm | zenity --progress --title="Connexion" --text="Connexion en cours..." --pulsate --auto-close
#On boucle tant que l'utilisateur ne veut pas se déconnecter
#Là, j'ai un doute sur le $?, parce que je ne connais pas la valeur de retour de pppd. Si c'est 0 : tant mieux, mais si c'est une autre valeur : ça ne marchera pas
#Autre point : Si la connexion échoue et que pppd retourne une valeur autre que 0 : c'est tout bon, parce qu'il ne lancera pas firefox, mais déconnectera directement
while [ $? == 0 ];
do
#On démarre firefox et on attend que l'utilisateur le quitte
firefox
#On demande si l'utilisateur veut se déconnecter. S'il ne veut pas, on redémarre firefox
zenity --question --title="Test" --text="Rester connecté à Internet ?\n (Annuler pour se déconnecter)"
done
#On lance la procédure de déconnexion.
killall pppd | zenity --progress --title="Déconnexion" --text="Déconnexion en cours..." --pulsate --auto-close
#Fin du script
Par contre, comme je n'ai pas de modem f@st800, je ne sais pas si le script fonctionnera, ou s'il faudra apporter des modifications.
Bonne chance.
Attention. Ce message dissimule peut-être un troll.
(MAC : iBook G4 12" 1,33 GHz -> Debian Lenny/Sid + OSX Tiger)
(PC : AMD Athlon XP 2200+ -> Ubuntu Dapper LTS + Ubuntu Feisty + GeeXboX)
Hors ligne
#4 Le 21/10/2006, à 20:15
- Lestat
Re : Script avec zenity
Le script marche parfaitement, exactement comme je voulais.
Merci Alex
a+
Hors ligne
Pages : 1