Page 1 sur 2

[script]capture d'ecran(abandonné)

Publié : mer. 08 mai 2013, 10:08
par defcard
bonjour, :D

je viens de faire un petit script pour faire une capture d'ecran

donc,c'est pas long du tout

Code : Tout sélectionner

#!/bin/sh
mv /home/utilisateur/*.png /chemin/du/dossier/Screenshots
sleep 5
scrot
sleep 1
feh -g "640x360" /home/utilisateur/*.png &
sleep 1
mv /home/utilisateur/*.png /chemin/du/dossier/Screenshots
exit 0
il faut donc installer "feh" et "scrot" pour qu'il fonctionne

Code : Tout sélectionner

# pacman -S feh scrot
il faut aussi l'adapter a la taille d'image que l'on veut.

ce script va
-verifier si il se trouve un png dans le dossier personnel
-deplacer ce dernier png vers le dossier "Screenshots"
-attendre 5 secondes ,le temps de mettre en place le bureau,par exemple: pour avoir le "menu" du panel sur le screenshot ou cacher le curseur de souris en bas a droite :)
-lancer "scrot" qui va faire le screenshot
-attendre une seconde de latence(je suis parano!! :lol: )
-lancer "feh" qui va ,dans ce cas,faire apparaitre une fenetres avec le screenshot du bureau d'une taille de 640x360
-encore une seconde d'attente!
-deplacer la capture qui se trouve dans le "dossier personnel" vers le dossier "Screenshots"
-et quitter le script

@edit
la on peut constater que s'il se trouve un quelquonque "png" dans le "dossier personnnel",il va le deplacer dans le dossier "Screenshots"...blll...c'est pas bien! :(

je sais comment faire autrement,mais bon je laisse chercher un peu!

@reedit
bah aller,je colle le "finalisé" qui fonctionne pour moi.

Code : Tout sélectionner

#!/bin/sh
mv /root/Images/tmp/*.png /root/Images/Screenshots
sleep 5
cd /root/Images/tmp
scrot
sleep 1
feh -g "640x360" /root/Images/tmp/*.png &
sleep 1
mv /root/Images/tmp/*.png /root/Images/Screenshots
exit 0
voila,j'attends vos commentaires et le resultat de vos test!! :bravo: et aussi les failles(s'il en existe).

Re: [script]capture d'ecran

Publié : mer. 08 mai 2013, 11:14
par coincoin
salut pourquoi ne te places tu pas simplement au début de ton script à ton dossier de screenshots ? celà t'éviterais des désagréments.

Re: [script]capture d'ecran

Publié : mer. 08 mai 2013, 11:24
par defcard
bonjour, coincoin

tu veux dire le dossier "tmp"?
quel est le risque?

en faite avec mon script,tu peux faire plusieurs "screenshots" sans avoir besoin de fermer la fenetre de "feh" a chaque fois,sinon ca affiche deux fois le meme screenshot...

on peut faire evoluer le script,pour,par exemple,faire plusieurs screenshots a la suite,avec une pause de "n" secondes entre chaque capture...en restant en "sh" et lancer l'appli dans le terminal et ainsi poser les deux trois questions du timing, de le taille du screenshot ou encore de la durée entre chaque capture.

tout ceci a coup de "if",de "read" ,de "echo" et de "parenthese" et tout ca! :mrgreen:

@edit
par preferences on peut ajouter un "killall" au lancement
ce qui donne:

Code : Tout sélectionner

#!/bin/sh
mv /root/Images/tmp/*.png /root/Images/Screenshots
killall feh
sleep 5
cd /root/Images/tmp
scrot
sleep 1
feh -g "640x360" /root/Images/tmp/*.png &
sleep 1
mv /root/Images/tmp/*.png /root/Images/Screenshots
exit 0
la on peut faire plusieurs screenshots sans devoir fermer "feh" entre chaque lancement du script,ce qui est pratique en faite.

Re: [script]capture d'ecran

Publié : mer. 08 mai 2013, 12:19
par FoolEcho
*Mode rabat-joie*. :copain: :pastaper: :merci:

Ça ne nécessite pas un script (allez, si admettons si tu veux capturer et afficher dans la foulée... mais même ça, à mon avis, un alias suffirait largement).
Déplacer n'a strictement aucun intérêt car tu peux directement indiquer à scrot l'emplacement du fichier de sortie (tu peux même modifier le format du nom de fichier si ça te chante, cf. man scrot).

Pour info, l'intérêt d'un script est d'être réutilisable sans modification. Ce qui implique des variables pour les choses qui se répétent, entre autres. Le sleep est un cache misère qui à 99,99% masque un problème de conception. etc.

Re: [script]capture d'ecran

Publié : mer. 08 mai 2013, 12:34
par defcard
tu pourrais en ecrire un vite fais?
un script simple n'ayant que des "constantes".pas besoin d'options "plus"! et ,aussi, sans devoir l'adapter.
et biensur dans les regles(que tu as l'air de connaitre :bosse: )

tu l'as testé ,le mien ,au moins? :roll:

oui en faite sans feh,c'est plus simple

Code : Tout sélectionner

#!/bin/sh
sleep 5
cd /root/Images/Screenshots
scrot 
exit 0
le "sleep 5" pour avoir le temps de finioler le bureau
"cd" pour se placer dans le dossier de destination
lancer le "shot"
et quitter le script

et on peut le faire successivement autant que l'on veut

desolé pour les editions successive du message :oops:
j'ai fini!! :D

Re: [script]capture d'ecran

Publié : mer. 08 mai 2013, 13:46
par FoolEcho
defcard a écrit :tu l'as testé ,le mien ,au moins? :roll:
Non. :mrgreen:
defcard a écrit :un script simple n'ayant que des "constantes".pas besoin d'options "plus"! et ,aussi, sans devoir l'adapter.
Non :non: , car cela ne nécessite pas un script.

Ton script se résume à une utilisation correcte de scrot. :rtfm:
Crée un répertoire ~/captures par exemple, puis lance:

Code : Tout sélectionner

scrot ~/captures/'%Y-%m-%d-%k%M%S.png' -e 'feh $f'
Ensuite, il te suffit de faire un alias (note que le "$" doit être échappé) que tu peux rajouter dans ton ~/.bashrc si tu utilises un shell bash:

Code : Tout sélectionner

alias capture="scrot ~/captures/'%Y-%m-%d-%k%M%S.png' -e 'feh \$f'"
Puis (après déconnexion, ou après un source du .bashrc ou un nouveau shell) tu n'as plus qu'à lancer capture. :D

Ce n'est pas le tout de vouloir faire des scripts, il faut en faire quand ça se justifie. ;-)

Re: [script]capture d'ecran

Publié : mer. 08 mai 2013, 14:39
par defcard
bon ,j'ai fait un petit truc plus pratique mais sans affichage de "feh"

Code : Tout sélectionner

#!/bin/sh

exec 2>/dev/null      #ne pas prendre compte des erreurs

d=1                   #constante d'addition
export d
  for n in $(ls /root/Images/Screenshots/ |wc -l)      #compte le nombre de fichier dans le dossier "Screenshots" pour la "variable" n
    do
  echo "" 
done
 
export n
y=$((n+d))               #variable "n+d" qui sera le numero du fichier de sortie
export y

sleep 5                  #5 secondes de finiolage du bureau
cd /root/Images/tmp      #se placer dans le repertoire "tmp"
scrot                    #creation du "screenshot"
mv /root/Images/tmp/*.png /root/Images/Screenshots/Capture"$y".png     #deplacement et renommage du fichier "capture" de sorti 
rm -r /root/Images/tmp/*.png   #suppression du fichier dans tmp
exit 0     #quitte le script
c'est bien ou...y'a plus simple!!

@edit
t'as l'air plus compliqué que moi...tu dis de devoir se deconnecter...d'entrer des commandes dans le terminal et tout ca. :copain:

Re: [script]capture d'ecran

Publié : mer. 08 mai 2013, 15:07
par coincoin
@defcard ce que te dit FoolEcho est plus simple ton script suivant :
defcard a écrit :

Code : Tout sélectionner

#!/bin/sh
sleep 5
cd /root/Images/Screenshots
scrot 
exit 0
peut se remplacer tout simplement par un

Code : Tout sélectionner

scrot -d #compteur /root/Images/Screenshots/screen.png

Code : Tout sélectionner

sleep 5                  #5 secondes de finiolage du bureau
cd /root/Images/tmp      #se placer dans le repertoire "tmp"
scrot                    #creation du "screenshot"
mv /root/Images/tmp/*.png /root/Images/Screenshots/Capture"$y".png     #deplacement et renommage du fichier "capture" de sorti 
rm -r /root/Images/tmp/*.png   #suppression du fichier dans tmp
exit 0     #quitte le script
Je ne comprend pas toujours pas pourquoi tu ne travailles pas directement dans ton répertoire de screenshots.

Franchement essaye de prendre le temps de comprendre ce que t'as écrit FoolEcho car avec sa méthode en ne tappant que capture dans ta console tu obtiens ce que tu souhaites... en une seule ligne... plus simple non ? Hésite pas à poser des questions dessus si tu ne saisis pas tout.

Re: [script]capture d'ecran

Publié : mer. 08 mai 2013, 15:10
par defcard
Je ne comprend pas pourquoi sinon toujours pas pourquoi tu ne travailles directement pas dans ton répertoire de screenshots.
ben comment veux-tu que je les renommes automatiquement?

cette commande ne fonctionne pas tel-quel!

Code : Tout sélectionner

# scrot -c #compteur /root/Images/Screenshots/screen.png
et celle ci ,apres ton edition de message,ne marche pas non plus lors de repetition de la commande,ca ecrase le premier fichier

Code : Tout sélectionner

# scrot -d 5 /root/Images/Screenshots/screen.png

Re: [script]capture d'ecran

Publié : mer. 08 mai 2013, 15:16
par coincoin
Bon on va te prendre par la main lol. Tappe ceci dans ta console et regarde ce que ça te donne :

Code : Tout sélectionner

scrot /root/Images/Screenshots/'%Y-%m-%d-%k%M%S.png' -e 'feh $f' -d 5
Est ce que le résultat te plaît ?

edit : l'option -c en fait affiche le compte à rebour et -d est le delay. on édite en même temps aha dur de suivre la conversation...

Re: [script]capture d'ecran

Publié : mer. 08 mai 2013, 15:21
par defcard
Bon on va te prendre par la main lol. Tappe ceci dans ta console et regarde ce que ça te donne :

Code : Tout sélectionner

scrot /root/Images/Screenshots/'%Y-%m-%d-%k%M%S.png' -e 'feh $f' -d 5
C'est pour ça qu'on t'a dit RTFM... Est ce que le résultat te plaît ?

edit : l'option -c en fait affiche le compte à rebour et -d est le delay
ben la il ne me renomme pas le fichier... :non: et ca m'affiche "feh" en tous grand et en plus il faut le fermer... :non:

Re: [script]capture d'ecran

Publié : mer. 08 mai 2013, 15:24
par coincoin
oui pas besoin puisque chaque fichier aura un nom différent qui correspond à sa date de création.

Re: [script]capture d'ecran

Publié : mer. 08 mai 2013, 15:30
par defcard
oui pas besoin puisque chaque fichier aura un nom différent qui correspond à sa date de création.
oui je sais ,mais moi je veux,en "plus", les renommer!!

coincoin a l'air interressant!
tu peux voir,si il y a plus simple.

en faite mon but:
-cliquer sur un icone du panel pour faire un "screenshot du bureau"
-le retrouver dans le repertoire "Screenshots" avec le nom de "Capture1"
-et lorsque je clique a nouveau sur l'icone,il me refait un screenshot qu'il envoie dans "le rep "Screenshots" avec le nom "Capture2" mais sans avoir effacer "Capture1"
-et ainsi de suite .

donc ,j'ai reussi a faire ce que je voulais mais si mon script peut etre plus simple...je suis prenneur! :bravo:

Re: [script]capture d'ecran

Publié : mer. 08 mai 2013, 15:33
par coincoin
Dans ce cas il suffit de remplacer '%Y-%m-%d-%k%M%S.png' par ton compteur et donc tu mets à la fin de ton script :

Code : Tout sélectionner

scrot /root/Images/Screenshots/$y.png -e 'feh $f' -d 5
celà suffit... pas besoin de renommer...

edit : et pour ton compteur tu peux utiliser simplement

Code : Tout sélectionner

ls -1 /root/Images/Screenshots/*.png | wc -l
qui te donne le nombre de screenshots que tu as dans ton répertoire

ce n'est pas très beau mais pour te montrer qu'en une seule ligne tu peux faire ça avec un compteur :

Code : Tout sélectionner

scrot /root/Images/Screenshots/`ls -1 /root/Images/Screenshots/*.png | wc -l`.png -e 'feh $f' -d 5

Re: [script]capture d'ecran

Publié : mer. 08 mai 2013, 15:47
par defcard

Code : Tout sélectionner

scrot /root/Images/Screenshots/`ls -1 /root/Images/Screenshots/*.png | wc -l`.png -e 'feh $f' -d 5
ca marche pas du tout!! :bravo: :non:

le mien est peut etre compliqués mais fonctionne!! :bravo:

Re: [script]capture d'ecran

Publié : mer. 08 mai 2013, 15:51
par coincoin
Bon écoute ça marche très bien chez moi si tu ne veux pas faire d'efforts pour comprendre les démarches et en apprendre un peu plus tant pis pour toi...
On te dit qu'il n'y a pas besoin de scripts pour faire ce que tu fais, libre à toi de faire un script pour t'exercer, apprendre, bidouiller mais je vois pas l'intérêt de poster sur un forum demander des conseils et ne pas voir plus loin que le bout de son nez...

Re: [script]capture d'ecran

Publié : mer. 08 mai 2013, 15:55
par defcard
mauvaise langue!! :copain:

ta commande ne marche pas si il n'y a pas de fichier existant dans le dossier "Screenshots"

@edit

a si...ca marche... :oops: desolé
bon bon,on voit ici la difference entre quelqu'un qui s'y connais et un "bricoleur" comme moi
...ben c'est super je vais l'utiliser pour mon script!!

merci beaucoup!! :bravo:

Re: [script]capture d'ecran

Publié : mer. 08 mai 2013, 16:06
par coincoin
no souci et t'inquietes c'est en forgeant qu'on devient forgeron :wink:

Re: [script]capture d'ecran

Publié : mer. 08 mai 2013, 20:11
par FoolEcho
Pour chipoter, le renommage n'a pas beaucoup, voire pas du tout, d'intérêt à mon sens.
La création avec timestamp (date-heure) permettant d'avoir la même chose (un tri) avec l'avantage de ne possiblement pas écraser une capture antérieure. Exemple, tu as 3 captures: 1, 2, 3. Tu supprimes la 2 par toi-même et la capture suivante va t'écraser ton n°3. Ce qui obligerait donc à faire un script pour vérifier ça, du coup, ou renommer sans arrêt avant appel de la capture (question coût et efficacité, c'est vraiment nul par rapport au timestamp et je ne parle même pas de retrouver toi-même une capture qui change de nom sans arrêt :fou:).
defcard a écrit :bon bon,on voit ici la difference entre quelqu'un qui s'y connais et un "bricoleur" comme moi
Faut commencer par exploiter le man d'une commande. :rtfm: :pastaper: :merci: ;-)

Re: [script]capture d'ecran

Publié : mer. 08 mai 2013, 20:36
par defcard
ben figure-toi que j'y ai penser au coup du fichier en moins et je comptais faire le truc...mais bah,j'ai decidé d'abandonner...

voila donc merci quand meme,et,a plus!! :)