Oui des programmes du genre existe et probablement beaucoup mieux mais tant qu'à l'avoir fait je vais le partager
Je suis ouvert à vos commentaires et vos propositions d'ajouts de fonctionsFonction
==> Prendre une photo de l'écran avec la touche "impr écran"
==> Visionner les images pris avec le script où n'importe quel autre
==> Permet de renommer , supprimer rapidement les images
==> Affiche les images sans les déformer (oui c'est important)
==> Permet de les afficher en plein écran
==> Affiche la résolution de l'image
==> La fonction de capture d'image fonctionne même si la Gui est fermé (Pour arrêter complètement le script ou ré-afficher la fenêtre , il faut cliquer sur l'icône dans la barre des taches)
==> Possibilité d'afficher/cacher les options rapidement
Option
==> Choisir le dossier où les images sont sauvegardé
==> Choisir d'afficher ou non le curseur sur les images
==> Choisir la qualité des images
Bientôt
==> Possibilité de naviguer entre les images avec les flèche en mode plein écran et ajout du mode diaporama
==> Permettre au script d'ouvrir au démarrage
==> Possibilité Changer la touche par default "impr écran" pour la capture d'image
Ps: Même si je ne suis pas dans la bonne section, j'en profite pour demander comment redimensionner et recadrer une image

► Afficher le texte
Code : Tout sélectionner
#Include <ScreenCapture.au3>
#include <GDIPlus.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <SliderConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <Array.au3>
Opt("TrayMenuMode", 1)
Opt("GUIResizeMode", $GUI_DOCKALL)
Opt("TrayOnEventMode",1)
If IniRead ( "screen.ini", "Configuration", "demarrage", "" ) = "" Then _
IniWrite( "screen.ini", "Configuration", "demarrage", $gui_unchecked)
If IniRead ( "screen.ini", "Configuration", "curseur", "" ) = "" Then _
IniWrite( "screen.ini", "Configuration", "curseur", $gui_unchecked)
If IniRead ( "screen.ini", "Configuration", "qualite", "" ) = "" Then _
IniWrite( "screen.ini", "Configuration", "qualite", 100)
If IniRead ( "screen.ini", "Configuration", "savefolder", "" ) = "" Then _
IniWrite( "screen.ini", "Configuration", "savefolder", FileSelectFolder _
("Dossier où les images seront enregistrées",@ScriptDir,1) & "\")
Global $filefolder=IniRead ( "screen.ini", "Configuration", "savefolder", "" )
Global $qualite=IniRead ( "screen.ini", "Configuration", "qualite", 100)
Global $curseur=IniRead ( "screen.ini", "Configuration", "curseur", $gui_unchecked)
Global $demarrage=IniRead ( "screen.ini", "Configuration", "demarrage", $gui_unchecked)
Global $quitterboucle=False
_ScreenCapture_SetJPGQuality($qualite)
TraySetIcon("", -1)
TraySetClick("27")
$MenuItem2 = TrayCreateItem("Voir la Fenêtre")
TrayItemSetOnEvent ( $MenuItem2, "_create_gui" )
TrayCreateItem("")
$MenuItem8 = TrayCreateItem("Fermer le programme")
TrayItemSetOnEvent ( $MenuItem8, "_exit" )
TraySetState()
While 1
_main()
WEnd
Func _Main()
$position=1
$liste_image = listeimg()
$resolution=tailleimg($liste_image[1])
$option=False
$Comboselect=$liste_image[1]
#Region ### START Koda GUI section ### Form=c:\users\max\documents\téléchargement\koda_1.7.3.0\forms\form1.kxf
$Form1 = GUICreate("Enregistreur d'écran", 589, 332, 55, 25)
$Button1 = GUICtrlCreateButton("Actualiser", 488, 104, 91, 25)
$Button3 = GUICtrlCreateButton("Précédente", 488, 136, 91, 25)
$Button4 = GUICtrlCreateButton("Supprimer", 488, 40, 91, 25)
$Checkbox1 = GUICtrlCreateCheckbox("Voir le curseur", 16, 384, 97, 17)
GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
$Pic1 = GUICtrlCreatePic($filefolder & $liste_image[$position], $resolution[2], $resolution[3], $resolution[0], $resolution[1], -1)
$Button2 = GUICtrlCreateButton("Renommer", 488, 72, 91, 25)
$Button5 = GUICtrlCreateButton("Suivante", 488, 168, 91, 25)
$Label1 = GUICtrlCreateLabel(StringLeft($liste_image[$position],StringLen($liste_image[$position])-4), 16, 0, 464, 30, $SS_CENTER)
GUICtrlSetFont(-1, 14, 800, 0, "Palatino Linotype")
$Combo1 = GUICtrlCreateCombo("", 168, 304, 313, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL,$WS_VSCROLL))
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Input1 = GUICtrlCreateInput($filefolder, 16, 336, 201, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
$Button6 = GUICtrlCreateButton("...", 224, 336, 51, 25)
$Checkbox3 = GUICtrlCreateCheckbox("Lancer au démarrage", 16, 368, 121, 17)
GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
$Slider1 = GUICtrlCreateSlider(272, 360, 150, 45)
GUICtrlSetData(-1, 100)
$Label2 = GUICtrlCreateLabel("Qualité", 320, 336, 46, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Button7 = GUICtrlCreateButton("Plein écran", 488, 200, 91, 25)
$Button8 = GUICtrlCreateButton("Touche pour prendre screen", 152, 368, 99, 33, $BS_MULTILINE)
$Button9 = GUICtrlCreateButton("Voir les options (ON/OFF)", 16, 304, 147, 25)
$Button10 = GUICtrlCreateButton("Appliquer les changement", 504, 360, 75, 33, $BS_MULTILINE)
$Label3 = GUICtrlCreateLabel("Résolution", 488, 232, 96, 17, $SS_CENTER)
GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
$Label4 = GUICtrlCreateLabel("X:", 488, 256, 94, 17)
$Label5 = GUICtrlCreateLabel("Y:", 488, 280, 94, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GUICtrlSetState($Checkbox3,$GUI_DISABLE)
GUICtrlSetState($Button8,$GUI_DISABLE)
if $liste_image[1] = 'Aucune image trouvée.jpg' Then
GUICtrlSetState($Button2,$GUI_DISABLE)
GUICtrlSetState($Button3,$GUI_DISABLE)
GUICtrlSetState($Button4,$GUI_DISABLE)
GUICtrlSetState($Button5,$GUI_DISABLE)
GUICtrlSetState($Button7,$GUI_DISABLE)
GUICtrlSetState($Combo1,$GUI_DISABLE)
EndIf
$Comboselect=""
For $i=1 to $liste_image[0]
$Comboselect=$Comboselect & "|" & StringLeft($liste_image[$i],StringLen($liste_image[$i])-4)
Next
GUICtrlSetData($combo1,$comboselect,StringLeft($liste_image[1],StringLen($liste_image[1])-4))
$combochange=$liste_image[1]
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Button1
GUIDelete($Form1)
_main()
Case $Button2
$name=InputBox("Renommer","Quel nom voulez-vous lui donner?")
If $name <> "" Then
If StringRight($name,4) <> ".jpg" Then $name = $name & ".jpg"
FileMove($filefolder & $liste_image[$position], $filefolder & $name)
$liste_image[$position]=$name
GUICtrlSetData($Label1,StringLeft($liste_image[$position],StringLen($liste_image[$position])-4))
EndIf
Case $Button3
If $position=1 Then
$position=$liste_image[0]
Else
$position=$position-1
EndIf
$resolution=tailleimg($liste_image[$position])
GUICtrlDelete($Pic1)
$Pic1 = GUICtrlCreatePic($filefolder & $liste_image[$position], $resolution[2], $resolution[3], $resolution[0], $resolution[1], -1)
GUICtrlSetData($Label1,StringLeft($liste_image[$position],StringLen($liste_image[$position])-4))
GUICtrlSetData($combo1,$comboselect,StringLeft($liste_image[$position],StringLen($liste_image[$position])-4))
GUICtrlSetData($Label4,"X : " & $resolution[4])
GUICtrlSetData($Label5,"Y : " & $resolution[5])
Case $Button4
FileDelete($filefolder & $liste_image[$position])
If $liste_image[0] <> $position Then
For $i=$position to $liste_image[0]-1
$liste_image[$i]=$liste_image[$i+1]
Next
EndIf
ReDim $liste_image[$liste_image[0]]
$liste_image[0]=$liste_image[0]-1
$resolution=tailleimg($liste_image[$position])
GUICtrlDelete($Pic1)
$Pic1 = GUICtrlCreatePic($filefolder & $liste_image[$position], $resolution[2], $resolution[3], $resolution[0], $resolution[1], -1)
GUICtrlSetData($Label1,StringLeft($liste_image[$position],StringLen($liste_image[$position])-4))
GUICtrlSetData($combo1,$comboselect,StringLeft($liste_image[$position],StringLen($liste_image[$position])-4))
GUICtrlSetData($Label4,"X : " & $resolution[4])
GUICtrlSetData($Label5,"Y : " & $resolution[5])
Case $Button5
If $position=$liste_image[0] Then
$position=1
Else
$position=$position+1
EndIf
$resolution=tailleimg($liste_image[$position])
GUICtrlDelete($Pic1)
$Pic1 = GUICtrlCreatePic($filefolder & $liste_image[$position], $resolution[2], $resolution[3], $resolution[0], $resolution[1], -1)
GUICtrlSetData($Label1,StringLeft($liste_image[$position],StringLen($liste_image[$position])-4))
GUICtrlSetData($combo1,$comboselect,StringLeft($liste_image[$position],StringLen($liste_image[$position])-4))
GUICtrlSetData($Label4,"X : " & $resolution[4])
GUICtrlSetData($Label5,"Y : " & $resolution[5])
Case $Button6
GUICtrlSetData($Input1,FileSelectFolder("Dossier où les images seront enregistrées",@ScriptDir,1) & "\")
Case $Button7
MsgBox(0,"Plein écran","Appuyer sur ""Echap"" pour quitter le mode plein écran")
$resolution=tailleimg($liste_image[$position],@DesktopWidth,@DesktopHeight,0,0)
_GDIPlus_Startup ()
$handle=_GDIPlus_ImageLoadFromFile($filefolder & $liste_image[$position])
$hBitmap1 = _ScreenCapture_Capture("")
$hImage1 = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap1)
$hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage1)
_GDIPlus_GraphicsClear($hGraphic)
_GDIPlus_graphicsDrawImageRect($hGraphic, $handle,$resolution[2],$resolution[3],$resolution[0],$resolution[1])
_GDIPlus_ImageSaveToFile($hImage1,@TempDir & "\splash.jpg")
_GDIPlus_GraphicsDispose ($hGraphic)
_GDIPlus_ImageDispose($hImage1)
_WinAPI_DeleteObject($hBitmap1)
_GDIPlus_ImageDispose($handle)
_GDIPlus_ShutDown ()
SplashImageOn("",@TempDir & "\splash.jpg",@DesktopWidth,@DesktopHeight,0,0,1)
Do
HotKeySet("{esc}","Quitter_plein")
Sleep(10)
Until FileExists(@TempDir & "\splash.jpg") <> 1
Case $Button9
$Pos = WinGetPos($Form1)
If not $option Then
WinMove($Form1, "", $Pos[0], $Pos[1], $Pos[2], $Pos[3] + 79)
$option=True
GUICtrlSetState($Checkbox1,$curseur)
GUICtrlSetState($Checkbox3,$demarrage)
GUICtrlSetData($Slider1,$qualite)
ElseIf $option Then
WinMove($Form1, "", $Pos[0], $Pos[1], $Pos[2], $Pos[3] - 79)
$option=False
EndIf
Case $Button10
IniWrite( "screen.ini", "Configuration", "savefolder",GUICtrlRead($Input1))
$filefolder=GUICtrlRead($Input1)
IniWrite( "screen.ini", "Configuration", "demarrage",GUICtrlRead($Checkbox3))
$demarrage=GUICtrlRead($Checkbox3)
IniWrite( "screen.ini", "Configuration", "curseur",GUICtrlRead($Checkbox1))
$curseur=GUICtrlRead($Checkbox1)
IniWrite( "screen.ini", "Configuration", "qualite",GUICtrlRead($Slider1))
$qualite=GUICtrlRead($Slider1)
_ScreenCapture_SetJPGQuality($qualite)
Case $GUI_EVENT_CLOSE
GUIDelete($Form1)
Do
HotKeySet ( "{PRINTSCREEN}" , "Screen" )
Sleep(10)
Until $quitterboucle
$quitterboucle=False
ExitLoop
EndSwitch
If $combochange <> GUICtrlRead($Combo1) Then
$combochange = GUICtrlRead($Combo1)
For $i=1 to $liste_image[0]
If StringLeft($liste_image[$i],StringLen($liste_image[$i])-4)=$combochange Then
$position=$i
$resolution=tailleimg($liste_image[$position])
GUICtrlDelete($Pic1)
$Pic1 = GUICtrlCreatePic($filefolder & $liste_image[$position], $resolution[2], $resolution[3], $resolution[0], $resolution[1], -1)
GUICtrlSetData($Label1,StringLeft($liste_image[$position],StringLen($liste_image[$position])-4))
GUICtrlSetData($Label4,"X : " & $resolution[4])
GUICtrlSetData($Label5,"Y : " & $resolution[5])
EndIf
Next
EndIf
HotKeySet ( "{PRINTSCREEN}" , "Screen" )
Sleep(10)
WEnd
EndFunc
Func Screen()
$name = @YEAR & "-" & @MON & "-" & @MDAY & "_" & @HOUR & "H" & @MIN & "MIN" & @SEC
If $curseur=$gui_checked Then $screenparam=1
If $curseur=$gui_unchecked Then $screenparam=0
If FileExists($filefolder)<>1 Then DirCreate($filefolder)
_ScreenCapture_Capture($filefolder & $name & ".jpg" _
,0,0,-1,-1,$screenparam)
EndFunc
Func listeimg()
dim $liste_image[1]
$search=FileFindFirstFile($filefolder & "*.jpg")
$image=FileFindNextFile($search)
While @error <> 1
_ArrayAdd($liste_image,$image)
$image=FileFindNextFile($search)
WEnd
$liste_image[0]=UBound($liste_image)-1
If $liste_image[0] = 0 Then
_ArrayAdd($liste_image,'Aucune image trouvée.jpg')
$liste_image[0]=1
EndIf
Return $liste_image
EndFunc
Func tailleimg($image,$1=460,$2=268,$3=16,$4=32)
Dim $resolution[6]
_GDIPlus_Startup ()
$handle=_GDIPlus_ImageLoadFromFile($filefolder & $image)
$resolution[4] = _GDIPlus_ImageGetWidth($handle)
$resolution[5] = _GDIPlus_ImageGetHeight($handle)
_GDIPlus_ImageDispose($handle)
_GDIPlus_ShutDown ()
If $resolution[4]/$resolution[5] = $1/$2 Then
$resolution[0]=$1
$resolution[1]=$2
$resolution[2]=$3
$resolution[3]=$4
ElseIf $resolution[4]/$resolution[5] > $1/$2 Then
$resolution[1]=$1/($resolution[4]/$resolution[5])
$resolution[0]=$1
$resolution[2]=$3
$resolution[3]=(($2-$resolution[1])/2)+$4
ElseIf $resolution[4]/$resolution[5] < $1/$2 Then
$resolution[0]=$2*($resolution[4]/$resolution[5])
$resolution[1]=$2
$resolution[2]=(($1-$resolution[0])/2)+$3
$resolution[3]=$4
EndIf
Return $resolution
EndFunc
Func Quitter_plein()
SplashOff()
FileDelete(@TempDir & "\splash.jpg")
EndFunc
Func _create_gui()
If WinExists("Enregistreur d'écran") Then
WinSetState("Enregistreur d'écran","",@SW_RESTORE & @SW_ENABLE & @SW_SHOW)
WinFlash("Enregistreur d'écran")
WinActivate("Enregistreur d'écran")
Else
$quitterboucle=True
EndIf
EndFunc
Func _exit()
Exit
EndFunc