[R] ImprimEcran au lancement d'un programme

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
astaroth
Niveau 4
Niveau 4
Messages : 65
Enregistré le : dim. 28 oct. 2007 15:22
Status : Hors ligne

[R] ImprimEcran au lancement d'un programme

#1

Message par astaroth »

Bonjour a tous!

Alors voila, je voudrais faire un script qui lance une capture d'écran toute les 10secs et qui enregistre la capture dans un répertoire donner..
J'ai commencer par:

Code : Tout sélectionner

#NoTrayIcon

Send("{PRINTSCREEN}"}

While 1
    Sleep(10000)
    Send("{PRINTSCREEN}"}
WEnd
Je sait, je n'ai pas commencer grand chose ^_^
Le problème est que je ne sait pas comment faire pour qu'il se lance au lancement d'un programme (J'ai penser a quelque chose du genre: "Quand le processus truc.exe fonctionne le script commence")
Deuxième problème je ne sait pas comment l'enregistrer dans le répertoire donner sous le format que je veux.. :roll:

Voila si vous avez des idée :D
Donner une explication avec vos idée, je script que très rarement :wink:

Merci!
Modifié en dernier par astaroth le mar. 06 janv. 2009 21:10, modifié 1 fois.
olaiv
Niveau 3
Niveau 3
Messages : 41
Enregistré le : sam. 26 avr. 2008 22:17
Status : Hors ligne

Re: [..] ImprimEcran au lancement d'un programme

#2

Message par olaiv »

Salut , je pense que les fonctions de l'udf ScreenCapture Management te conviendraient , regarde l'aide pour _ScreenCapture_Capture par exemple.

Ensuite pour effectuer une action toutes les 10 secondes tu peux utiliser AdlibEnable

Un exemple simple :

Code : Tout sélectionner

#include <ScreenCapture.au3>

AdlibEnable ("_ScreenShot",10000)

While 1
    ;le reste de ton script ici
WEnd

Func _ScreenShot()
    _ScreenCapture_Capture (@MyDocumentsDir & "\TonImage.jpg")
EndFunc
 
J'espère t'avoir mis sur la voie :)
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] ImprimEcran au lancement d'un programme

#3

Message par Yogui »

astaroth a écrit :

Code : Tout sélectionner

#NoTrayIcon

Send("{PRINTSCREEN}"}

While 1
    Sleep(10000)
    Send("{PRINTSCREEN}"}
WEnd
le plus simple c'est d'utiliser l'include ScreenCapture.au3

Code : Tout sélectionner

#NoTrayIcon
#include <date.au3>
#include <ScreenCapture.au3>
HotKeySet("{ESC}","_terminate")


$heure = @HOUR&@MIN&@SEC
MsgBox(0,"",$heure)
_ScreenCapture_Capture(@MyDocumentsDir & "\GDIPlus_Image"&$heure&".jpg")
While 1
    Sleep(10000)
    $heure = @HOUR&@MIN&@SEC
;    Capture full screen
    _ScreenCapture_Capture(@MyDocumentsDir & "\GDIPlus_Image"&$heure&".jpg")
WEnd


Func _terminate()
    Exit
EndFunc
 
astaroth
Niveau 4
Niveau 4
Messages : 65
Enregistré le : dim. 28 oct. 2007 15:22
Status : Hors ligne

Re: [..] ImprimEcran au lancement d'un programme

#4

Message par astaroth »

Code : Tout sélectionner

#NoTrayIcon
#include <date.au3>
#include <ScreenCapture.au3>
HotKeySet("{ESC}","_terminate")


$heure = @HOUR&@MIN&@SEC
_ScreenCapture_Capture("E:\Captures" & "\GDIPlus_Image"&$heure&".jpg")

While 1
    Sleep(10000)
    $heure = @HOUR&@MIN&@SEC
;    Capture full screen
    _ScreenCapture_Capture("E:\Captures" & "\GDIPlus_Image"&$heure&".jpg")
WEnd


Func _terminate()
    Exit
EndFunc
Super ^_^

Est-il possible que le script commence seulement quand un certain processus est lancé, et qu'il s'arrête lorsque le processus s'arrête? (truc.exe par exemple)
Comment utiliser une combinaison de touche pour l'arrêter a la place du bouton "echap"? (Ctrl + Alt + F5 par exemple)

Sinon merci :D
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] ImprimEcran au lancement d'un programme

#5

Message par Yogui »

Pour vérifier si un processus existe c'est

If ProcessExists("truc.exe ") Then
MsgBox(0, "Example", "truc.exe est présent.")
EndIf

Concernant l'intéruption vous pouvez consulter l'aide ou dans les tuto suivre ce lien
http://www.autoitscript.fr/forum/viewto ... f=11&t=294

de nombreuse touches y sont indiqué
astaroth
Niveau 4
Niveau 4
Messages : 65
Enregistré le : dim. 28 oct. 2007 15:22
Status : Hors ligne

Re: [..] ImprimEcran au lancement d'un programme

#6

Message par astaroth »

Voila j'ai fait ça:

Code : Tout sélectionner

#include <date.au3>
#include <ScreenCapture.au3>
HotKeySet("!^{F5}","_terminate")


$heure = @HOUR&@MIN&@SEC
_ScreenCapture_Capture("E:\Sreens" & "\Capture"&$heure&".jpg")

While 1
    If ProcessExists("truc.exe") Then
    Sleep(10000)
    $heure = @HOUR&@MIN&@SEC
;    Capture full screen
    _ScreenCapture_Capture("E:\Sreens" & "\Capture"&$heure&".jpg")
Else
    ProcessClose ("Capture d'écran.exe")
EndIf
WEnd


Func _terminate()
    Exit
EndFunc
Ça marche nikel ^_^
Pour le lancement j'ai fait un script qui lance le programme désirer ainsi que le script de capture.
Merci pour vos réponses!
Répondre