Page 1 sur 1
[R] Screenshot auto
Posté : lun. 14 juil. 2008 17:57
par LeX
Bonjour

Alors voila, je voudrais créer un screenshot automatique en jpg avec explorateur du fichier temporaire a la fin.
Si qu'elqu'un pouvait m'aider ça serait cool, je suis connecté a skype en permanence et mon pseudo est: alextoutcourt
j'ais surtout un probleme pour la variable concernant le clipboard
j'ais trouvé un fichier pré enregistrer qui permet de modifier une image bmp en jpg, je pense l'incorporé dans le script
voila, a bon entendeur, j'attend de vos nouvelles

Re: [..] screenshot auto
Posté : lun. 14 juil. 2008 18:33
par jbnh
avec explorateur du fichier temporaire a la fin.
j'ai pas tres bien compris. Donc tu as ton screenshot et puis?
Re: [..] screenshot auto
Posté : lun. 14 juil. 2008 20:48
par LeX
en gros :
1) j'appuis sur un raccourcis clavier
2)un explorateur windows s'ouvre avec un screenshot en jpg
Re: [..] Screenshot auto
Posté : lun. 14 juil. 2008 21:27
par Tlem
Vous cherchez quelque chose dans le genre :
Window Clippings 1.0
Re: [..] screenshot auto
Posté : lun. 14 juil. 2008 21:31
par timmalos
Voici pour toi, je viens d'y passer une heure juste pour arriver à lancer l'explorer comme il faut Ooooo
Re: [..] Screenshot auto
Posté : lun. 14 juil. 2008 21:45
par jbnh
J'avais vu sur le forum autoit en anglais qu'une include existait pour ce type d'opération = 3 lignes de code pour tout faire
Mais le script de timmalos marche tres bien !
Re: [..] Screenshot auto
Posté : mar. 15 juil. 2008 00:11
par LeX
alors là je dis juste : WOUAH!!
Merci Timmalos et Merci a vous de vous être intérésser a mon problême

le script de timmalos est exactement ce que je voulais !
Windows Clipping donne des possibilités (a ce que j'ais compris) en plus dont je ne me servirais pas

Mais il à l'air trés bien quand même hein !
Merci encore de votre aide, Par contre, le code de timmalos vous parait peut être simple, mais moi certaines chose m'ont échapper, une petite explication du code serait possible ?
Bonne journée

Re: [..] Screenshot auto
Posté : mar. 15 juil. 2008 08:36
par Tlem
Voici le code de Tim très légèrement amélioré.
ESC = Sortie du script.
PRNTSCR + ALT = Capture de la fenêtre active.
► Afficher le texteScreenCapture.au3
Code : Tout sélectionner
#include <misc.au3>
#include <ScreenCapture.au3>
HotKeySet("{ESC}", "Fin") ; Touche echap pour quitter le script en cours.
HotKeySet("{PRINTSCREEN}") ; Empeche la copie windows
Opt("MustDeclareVars", 1)
Opt("TrayIconDebug", 1)
Global $hBitmap, $countfile[3], $dll, $Client, $Dst, $Name
$Dst = @MyDocumentsDir & '\Screens'
$dll = DllOpen("user32.dll")
While 1
Sleep(100)
If _IsPressed("2C", $dll) Then
If Not FileExists($Dst) Then DirCreate($Dst)
$countfile = DirGetSize($Dst, 1)
$Name = $Dst & '\Screen' & ($countfile[1] + 1) & '.jpg'
If _IsPressed("12", $dll) Then
$Client = WinGetPos("[ACTIVE]")
If Not @error Then
$hBitmap = _ScreenCapture_Capture($Name, $Client[0], $Client[1], $Client[0] + $Client[2], $Client[1] + $Client[3])
EndIf
Else
$hBitmap = _ScreenCapture_Capture($Name)
EndIf
ShellExecute("explorer.exe", $Dst)
EndIf
WEnd
Func Fin()
DllClose($dll)
Exit
EndFunc ;==>Fin
Re: [..] Screenshot auto
Posté : mar. 15 juil. 2008 13:08
par timmalos
Voici le programme de Tlem commenté
► Afficher le texte
Code : Tout sélectionner
#include <misc.au3>
#include <ScreenCapture.au3>
HotKeySet("{ESC}", "Fin") ; Touche echap pour quitter le script en cours.
HotKeySet("{PRINTSCREEN}") ; Empeche la copie windows
Opt("MustDeclareVars", 1) ; Oblige à définir les variables, un bon reflexe pour les programmeurs voulant se diriger vers un autre langage que Autoit après
Opt("TrayIconDebug", 1) ; Permet de vérifier, pendant que le script est en cours de codage, l'endroit ou il y a (si il y a) un bug. Ne sert plus à rien une fois le script terminé
Global $hBitmap, $countfile[3], $dll, $Client, $Dst, $Name ;Definition des variables
$Dst = @MyDocumentsDir & '\Screens';Definition du repertoire ou tu souhaite que les captures d'ecran s'enregistrent
If Not FileExists($Dst) Then DirCreate($Dst); Si le repertoire mis juste avant n'existe pas, on le crée
$dll = DllOpen("user32.dll");Ouverture de la dll "user32.dll" necessaire pour l'utilisation de la fonction _Ispressed
While 1 ; boucle principale qui ne finira jamais sauf si l'utilisateur clic sur Echap
Sleep(100)
If _IsPressed("2C", $dll) Then ; voir l'aide en cliquant sur _Ispressed. 2C correspont a la touche [Impr Ecran] _
;(suite) Si l'utilisateur clique, alors on fait la suite, sinon, on attend 0.1 sec et on retest
$countfile = DirGetSize($Dst, 1) ; On compte le nombre de fichier presents dans le repertoire. Permet de changer le nom cf juste dessous
$Name = $Dst & '\Screen' & ($countfile[1] + 1) & '.jpg';On definit le nom que l'on va mettre au screen. Si il y a 4 images dans \screens\ alors la screen va prendre le nom screen5
If _IsPressed("12", $dll) Then; Rajout de Tlem: Si en meme tps que l'appui sur [Impr Ecran] on appui sur Alt, alors on va screen seulement la fenetre active
$Client = WinGetPos("[ACTIVE]"); On prend les positions de la fenetre active
If Not @error Then ; si il n'y a pas d'erreur, alors on screen avec les positions recus juste avant
$hBitmap = _ScreenCapture_Capture($Name, $Client[0], $Client[1], $Client[0] + $Client[2], $Client[1] + $Client[3])
EndIf
Else; Si on n'appui pas sur Alt, alors on screen la totalité de l'ecran
$hBitmap = _ScreenCapture_Capture($Name)
EndIf
ShellExecute("explorer.exe", $Dst); On affiche l'explorateur
EndIf
WEnd
Func Fin(); si l'utilisateur appui sur Echap, alors
DllClose($dll);on ferme la dll pour qu'un autre programme puisse l'utiliser
Exit;On quitte se merveilleux programme. Mais honnetement, qui voudrait arreter un programme comme ca???
EndFunc ;==>Fin
Re: [..] Screenshot auto
Posté : mar. 15 juil. 2008 19:44
par LeX
Bonjour,
Je reste baba là !
Franchement, c'est vraiment super gentil de vous attarder comme ça sur mon problême, j'ais l'habitude de me débrouiller seul, et de vous voir faire des efforts pour moi est vraiment, VRAIMENT plaisant !

Merci beaucoup pour ton amélioration Tlem, et pour ton explication timmalos , vous êtes super !

Je ne vais plus hésiter a vous demander de l'aide désormais (c'est le revers de la médaille ! :p)
Encore Merci et Bonne soirée
(Si je peux vous aider en quoi que ce soit en retour, si j'en suis capable, n'hésiter pas a me demander

)
Re: [..] Screenshot auto
Posté : mar. 15 juil. 2008 20:28
par timmalos
n'oublie pas d'editer ton sujet pour le mettre en "[R] Screenshot auto" afin de respecter les regles du forum.
Merci et bonne continuation
ps: n'hesite pas à demander de l'aide
Re: [R] Screenshot auto
Posté : mar. 23 juin 2009 22:39
par Kikoolol
Excuser moi d'uper un post si ancien mais, comment faire un screenshot sans perte de qualité ? (avec le script de telm)
Re: [R] Screenshot auto
Posté : mar. 23 juin 2009 23:06
par Tlem
Essayez de changer le format de sortie de l'image en modifiant l'extension.
Remplacez '.jpg' par '.bmp' par exemple.
Re: [R] Screenshot auto
Posté : lun. 06 juil. 2009 22:18
par Kikoolol
Non rien n'y fait la qualité reste la même...
Re: [R] Screenshot auto
Posté : lun. 06 juil. 2009 22:46
par orax
Bizarre... j'ai utilisé le script posté ici :
http://www.autoitscript.fr/forum/viewto ... 7199#p7199 ; j'ai mis (à la ligne 24) ".png" au lieu de ".jpg" et la qualité est parfaite. (J'ai testé sous XP.)
Re: [R] Screenshot auto
Posté : mar. 07 juil. 2009 12:43
par Kikoolol
Ah oui je confirme, je m'étais tromper de script >< désolé.