Page 1 sur 1

capture d'ecran automatique

Publié : jeu. 07/juil./2005 1:45
par kelly
Qui saurait me dire quel morceau de code mettre dans un programme pour simuler l'appuie de la touche "IMPR ECRAN" afin de copier l'image a l'ecran dans le tampon pour le retransferer plus tard avec "coller" dans un logiciel de dessin ??

Publié : jeu. 07/juil./2005 2:43
par Dorian
Voici un code qui te permet simuler la touche Impr écran :

Code : Tout sélectionner

; English forum: http://purebasic.myforums.net/viewtopic.php?t=3695&highlight=
; Author: PB
; Date: 30. January 2002

#Desk = #True     ; set to #True, if you want screenshot of full desktop
                   ; set to #False, if you want only capture active window
                   
If #Desk = #True      ; make screenshot of full desktop
  keybd_event_(#VK_SNAPSHOT,0,0,0) ; Snapshot of entire desktop
  ; Note: Win 9x needs 1,0,0 for the entire desktop. 
Else                  ; make screenshot of active window
  keybd_event_(#VK_SNAPSHOT,1,0,0) ; Snapshot of current active window.
EndIf

MessageRequester("Message","OK, paste the current clipboard data to your favorite Gfx program to see screenshot.",#MB_ICONEXCLAMATION)

J'espère que c'est ce que tu cherches.

Publié : jeu. 07/juil./2005 5:44
par kelly
C'est pour screenshooté un ecran "OpenScreen(1024,768,32,"name")". Mais helas, ca ne marche pas. Est ce parce qu'il me manque une lib ou parce que G la version 3.91 ou je ne sais koi ????
ps : je n'ai aucun message d'erreur.

Publié : jeu. 07/juil./2005 8:39
par Heis Spiter

Code : Tout sélectionner

i = 0
Repeat
  Delay(1)
  If GetAsyncKeyState_(#VK_SNAPSHOT) = -32767
    If ExamineDesktops() 
      Ecran_Largeur = DesktopWidth(0) 
      Ecran_Hauteur = DesktopHeight(0) 
      ProfondeurCouleur = DesktopDepth(0) 
    Else 
      End 
    EndIf
    DC = GetDC_(0) 
    CreateImage(0, Ecran_Largeur, Ecran_Hauteur) 
    Dessin = StartDrawing(ImageOutput()) 
    BitBlt_(Dessin, 0, 0, Ecran_Largeur, Ecran_Hauteur, DC, 0, 0, #SRCPAINT | $40000000) 
    StopDrawing() 
    ReleaseDC_(0, DC) 
    SaveImage(0, "D:\Screen"+Str(i)+".bmp", #PB_ImagePlugin_BMP)
    i = i + 1
  EndIf
ForEver