#1 Le 23/03/2008, à 11:48
- Gillaume
[ Résolu ] Zenity + Services : Un tout petit peu d'aide.
Salut à tous,
Je voudrais un peu comprendre zenity...
C'est facile, sans vraiment l'être.
Quelqu'un peut m'aiguiller pour ceci :
J'aimerais créer une boite de dialogue, qui serait lancer avec un raccourci ( un lanceur ), pour demander
Si :
"Voulez arrêter ou démarrer le service cupsys ?"
Avec les 2 actions correspondantes ... 2 boutons...
Pour la compréhension de zenity, je me base sur ça :
http://forum.ubuntu-fr.org/viewtopic.php?id=117039&p=1
mais bon....
Je rame un peu.
Joyeuses paques
Guillaume
Dernière modification par Gillaume (Le 23/03/2008, à 23:04)
Guili Guili
Hors ligne
#2 Le 23/03/2008, à 12:02
- yurek
Re : [ Résolu ] Zenity + Services : Un tout petit peu d'aide.
Systeme / Administration / Services / décocher la case cupsys
sinon
zenity --question --text="Voulez arrêter ou démarrer le service cupsys ?"
if [ "${PIPESTATUS[0]}" != "0" ]; then
zenity --error --title="annuler " --text="Tu vient de cliquer sur annulé !"
exit
else zenity --error --title="Valider" --text="Tu vient de cliquer sur Valider!"
fi
http://doc.ubuntu-fr.org/installation/debutants
http://doc.ubuntu-fr.org/diagnostic
http://doc.ubuntu-fr.org/diagnostic_outils
http://doc.ubuntu-fr.org/reflexe_ubunteros
Hors ligne
#3 Le 23/03/2008, à 12:12
- Gillaume
Re : [ Résolu ] Zenity + Services : Un tout petit peu d'aide.
Merci, mais c'est pour un systeme minimale, ou ya
rien à cocher ....
Guili Guili
Hors ligne
#4 Le 23/03/2008, à 12:19
- titienne
Re : [ Résolu ] Zenity + Services : Un tout petit peu d'aide.
bonjour,
je croi qu'il n'y a que ça :
menu=$(zenity --list --column="Choix" --column=" " --radiolist --title="Menu" false choix1 false choix2)
Hors ligne
#5 Le 23/03/2008, à 12:20
- yurek
Re : [ Résolu ] Zenity + Services : Un tout petit peu d'aide.
zenity --question --text="Voulez arrêter ou démarrer le service cupsys ?"
if [ "${PIPESTATUS[0]}" != "0" ]; then
echo "Log annulé date
exit
else echo "Log Validé
fi
http://doc.ubuntu-fr.org/installation/debutants
http://doc.ubuntu-fr.org/diagnostic
http://doc.ubuntu-fr.org/diagnostic_outils
http://doc.ubuntu-fr.org/reflexe_ubunteros
Hors ligne
#6 Le 23/03/2008, à 12:32
- Gillaume
Re : [ Résolu ] Zenity + Services : Un tout petit peu d'aide.
J'ai fait ceci :
Pour lancer le service - je pense que c'est bon, j'en ferai un autre scrip, pour l'arreter !
#!/bin/bash
# Guillaume le 23 Mars 2008.
zenity --question --title="Utilitaire pour l'impression" --text="Est ce que tu veux activer le service de 'limpression ?"
if [ "${PIPESTATUS[0]}" != "1" ]; then
gksu /etc/init.d/cupsys start | zenity --progress --title="Service de l'impression" --text="Je suis en train démarrer le service pour imprimer" --pulsate --auto-close
fi
if [ "${PIPESTATUS[0]}" != "0" ]; then
zenity --warning --title="Agressif" --text="OK Bwana - Tu sais pas ce que tu veux == Tu valides et tu dégages ! :-)) [ Tonton ]"
fi
titienne,
ça m'interesse ce que tu proposes, tu peux développer ?
PS : c'est un script pour ma niéce qui a 10 ans !
Dernière modification par Gillaume (Le 23/03/2008, à 12:33)
Guili Guili
Hors ligne
#7 Le 23/03/2008, à 12:47
- yurek
Re : [ Résolu ] Zenity + Services : Un tout petit peu d'aide.
attention le pipestatus n'est pas forcément différent de 1 lorsque l'action est validé ! ce qui veut dire qu'il est égale a 0 si tout se passe bien.
zenity --warning --title="Agressif" --text="OK Bwana - Tu sais pas ce que tu veux == Tu valides et tu dégages ! :-)) [ Tonton ]"
PS : c'est un script pour ma niéce qui a 10 ans ! lol
J'espere qu'elle sera pas choqué !
http://doc.ubuntu-fr.org/installation/debutants
http://doc.ubuntu-fr.org/diagnostic
http://doc.ubuntu-fr.org/diagnostic_outils
http://doc.ubuntu-fr.org/reflexe_ubunteros
Hors ligne
#8 Le 23/03/2008, à 13:18
- titienne
Re : [ Résolu ] Zenity + Services : Un tout petit peu d'aide.
je ne peut pas trop t'aider parce que j'ai tiré ce bout de code de ce script fait pas WW qui est menbre de ce forum !!
voi ce que tu puet en tiré !! (ligne 50 je crois)(copie le dans gedit pour avoir la colorisation du code !!)
#!/bin/sh
# Programmeur : WW
# 18/03/08
# Script permettant d'extraire le son d'une vidéo
# Fonction qui traite les vidéos contenus dans un dossier
traitementDossier() {
listeFormats="*.avi *.divx *.xvid *.mpg *.dat *.ogm *.AVI *.DIVX *.XVID *.MPG *.DAT *.OGM" # Représente la liste des formats des vidéos à traiter dans le dossier
if [ $extension != "mp3" ]; then
for i in $listeFormats; do
if [ ! -e "${i%.*}".$extension ]; then
ffmpeg -i "$i" -aq 25 -vn -f $extension "${i%.*}"."$extension" 2>&1 | zenity --progress --pulsate --title="Extraction en cours" --text="Vidéo : $i" --auto-close;
else
zenity --info --text="Le fichier ${i%.*}."$extension" existe déjà !" --window-icon="/usr/share/pixmaps/eXson.png"
fi
done
else
for i in $listeFormats; do
if [ ! -e "${i%.*}".mp3 ]; then
ffmpeg -i "$i" -aq 25 -vn -f wav "$i".wav 2>&1 | zenity --progress --pulsate --title="Extraction en cours" --text="Première partie\nVidéo : $i" --auto-close;
lame "$i".wav "${i%.*}".mp3 2>&1 | zenity --progress --pulsate --title="Encodage mp3 en cours" --text="Seconde partie\nVidéo : $i" --auto-close;
rm "$i".wav
else
zenity --info --text="Le fichier ${i%.*}.mp3 existe déjà !" --window-icon="/usr/share/pixmaps/eXson.png"
fi
done
fi
}
# Fonction qui traite une vidéo à passer en paramètre
traitementFichier() {
if [ $extension != "mp3" ]; then
ffmpeg -i "$1" -aq 25 -vn -f $extension "${1%.*}"."$extension" 2>&1 | zenity --progress --pulsate --title="Extraction en cours" --text="Vidéo : $1" --auto-close;
else
ffmpeg -i "$1" -aq 25 -vn -f wav "$1".wav 2>&1 | zenity --progress --pulsate --title="Extraction en cours" --text="Première partie\nVidéo : $1" --auto-close;
lame "$1".wav "${1%.*}".mp3 2>&1 | zenity --progress --pulsate --title="Encodage mp3 en cours" --text="Seconde partie\nVidéo : $1" --auto-close;
rm "$1".wav
fi
}
# Fonction d'annulation requière un paramètre
annuler() {
if [ "$1" = "" ]; then
exit 0;
fi
}
# Fin des définitions de fonctions
menu=$(zenity --list --column="Choix" --column=" " --height="250" --width="350" --radiolist --text="Que voulez-vous faire ??\nExtraire le son de :" --window-icon="/usr/share/pixmaps/eXson.png" --title="Menu" false "Vidéos" false "Dossiers" false "Vidéos provenant de dossiers différents")
annuler $menu
extension=$(zenity --list --column="Choix" --column=" " --height="250" --width="300" --radiolist --text="Quel format voulez-vous pour le(s) fichier(s) de sortie ?" --window-icon="/usr/share/pixmaps/eXson.png" --title="Extensions" false "mp3" false "ogg" false "wav")
annuler $extension
if [ "$menu" = "Dossiers" ]; then # Traite n dossier(s)
selection=$(zenity --file-selection --multiple --directory --window-icon="/usr/share/pixmaps/eXson.png" --title="Sélection de dossier") # Sélection de dossier
if [ "$selection" = "" ]; then # L'utilisateur à cliquer sur annuler
exit 0;
else
fin=`expr "$selection" : '.*|\(.*\)'`
if [ "$fin" = "" ]; then # Permet d'éviter que la boucle while soit sans fin quand l'utilisateur sélectionne qu'un seul dossier
fin=$selection
fi
# La boucle while traite tout les dossiers sélectionnés sauf le dernier
while [ "$selection" != "$fin" ] ; do
courant=`expr "$selection" : '\([^|]*|\)'`
selection=${selection#$courant}
courant=${courant%|}
cd "$courant" #On entre dans le dossier des vidéos à traiter
traitementDossier
done
# On le traire donc à la fin de la boucle while
cd "$fin"
traitementDossier
fi
zenity --info --text="L'extraction est finie.\n\n Merci d'avoir utilisé eXson !" --window-icon="/usr/share/pixmaps/eXson.png" --title="Merci !!!"
elif [ "$menu" = "Vidéos" -o "$menu" = "Vidéos provenant de dossiers différents" ]; then # Traite n vidéo(s)
if [ "$menu" = "Vidéos provenant de dossiers différents" ]; then
zenity --info --text="Une fenêtre de sélection va apparaître, sélectionner alors les Vidéos de votre premier dossier et valider.\n\nUne nouvelle fenêtre s'ouvrira alors pour la sélection des Vidéos du dossier suivant.\n\nUne fois que vous avez sélectionné et validé toutes les Vidéos désirées, cliquer sur Annuler." --window-icon="/usr/share/pixmaps/eXson.png" --title=">Utilisation<"
fi
selection=$(zenity --file-selection --multiple --window-icon="/usr/share/pixmaps/eXson.png" --title="Sélection de vidéo") # Sélection de vidéo
if [ "$menu" = "Vidéos provenant de dossiers différents" -a "$selection" != "" ]; then # Pour les vidéos provenant de dossiers différents
while [ "$selection" != "" ]; do # Tant qu'on ne clique pas sur annuler ...
multirep=$multirep"|$selection" # Concaténation des différentes sélections
selection=$(zenity --file-selection --multiple --window-icon="/usr/share/pixmaps/eXson.png" --title="Sélection de vidéo") # ... on continue la sélection
done
else annuler $selection
fi
if [ "$menu" = "Vidéos provenant de dossiers différents" ]; then
selection=${multirep#|} # La sélection final est la concaténation des différentes sélections
fi
fin=`expr "$selection" : '.*|\(.*\)'`
if [ "$fin" = "" ]; then # Permet d'éviter que la boucle while soit sans fin quand l'utilisateur sélectionne qu'un seul fichier
fin=$selection
fi
while [ "$selection" != "$fin" ]; do
courant=`expr "$selection" : '\([^|]*|\)'`
selection=${selection#$courant}
courant=${courant%|}
if [ ! -e "${courant%.*}".$extension ]; then
traitementFichier $courant
else
zenity --info --text="Le fichier ${courant%.*}."$extension" existe déjà !" --window-icon="/usr/share/pixmaps/eXson.png"
fi
done
if [ ! -e "${fin%.*}".$extension ]; then
traitementFichier $fin
else
zenity --info --text="Le fichier ${fin%.*}."$extension" existe déjà !" --window-icon="/usr/share/pixmaps/eXson.png"
fi
zenity --info --text="L'extraction est finie.\n\n Merci d'avoir utilisé eXson !" --window-icon="/usr/share/pixmaps/eXson.png" --title="Merci !!!"
fi
Dernière modification par titienne (Le 23/03/2008, à 13:24)
Hors ligne
#9 Le 23/03/2008, à 15:00
- Gillaume
Re : [ Résolu ] Zenity + Services : Un tout petit peu d'aide.
Merci Titienne
Intéressant, mais pas facile....
Guili Guili
Hors ligne
#10 Le 23/03/2008, à 17:45
- yurek
Re : [ Résolu ] Zenity + Services : Un tout petit peu d'aide.
tu veut développer quoi comme service exactement ?
http://doc.ubuntu-fr.org/installation/debutants
http://doc.ubuntu-fr.org/diagnostic
http://doc.ubuntu-fr.org/diagnostic_outils
http://doc.ubuntu-fr.org/reflexe_ubunteros
Hors ligne
#11 Le 23/03/2008, à 19:07
- WW
Re : [ Résolu ] Zenity + Services : Un tout petit peu d'aide.
Salut,
#!/bin/sh
reponse=$(zenity --list --column="Choix" --column=" " --radiolist --title="Est ce que tu veux activer le service de l'impression ou le désactiver?" false Activer false Désactiver)
if [ $reponse = "Activer" ]; then
gksu /etc/init.d/cupsys start | zenity --progress --title="Service de l'impression" \
--text="Je suis en train démarrer le service pour imprimer" --pulsate --auto-close
else
gksu /etc/init.d/cupsys stop | zenity --progress --title="Service de l'impression" \
--text="Je suis en train d'arrêter le service pour imprimer" --pulsate --auto-close
fi
Les \ à la fin des lignes de zenity sont là juste pour la clareté et éviter qu'elles sortent de l'écran.
Sinon pour zenity
zenity --help-all
te donne beaucoup d'indication.
La même chose sur internet ici.
Dernière modification par WW (Le 23/03/2008, à 19:10)
Quand on sait c'est facile, mais qui n'a jamais été débutant.
Hors ligne
#12 Le 23/03/2008, à 23:02
- Gillaume
Re : [ Résolu ] Zenity + Services : Un tout petit peu d'aide.
Merci WW
C'est simple, et efficace, exactement ce que je voulais.
Merci
Bonne soirée
PS : pourquoi y a pas une page de documentation sur la doc ubuntu ?
C'est la premiere chose que j'ai regardé, et il y a rien. j'ai trouvé bizarre...
On peut faire des bons trucs avec Zenity !
Guili Guili
Hors ligne
#13 Le 23/03/2008, à 23:04
- Gillaume
Re : [ Résolu ] Zenity + Services : Un tout petit peu d'aide.
WW
ton lien est excellent aussi
Guili Guili
Hors ligne