Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/10/2006, à 13: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. wink

Dernière modification par Lestat (Le 14/10/2006, à 13:52)

Hors ligne

#2 Le 14/10/2006, à 13: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, à 12: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, à 19:15

Lestat

Re : Script avec zenity

Le script marche parfaitement, exactement comme je voulais.

Merci Alex wink
a+

Hors ligne