kinkey_wizard
Messages postés30Date d'inscriptiondimanche 24 octobre 2004StatutMembreDernière intervention 4 juillet 2005
-
22 déc. 2004 à 02:10
kinkey_wizard
Messages postés30Date d'inscriptiondimanche 24 octobre 2004StatutMembreDernière intervention 4 juillet 2005
-
22 déc. 2004 à 16:50
Bonjour tout le monde,
Voici une source qui pour l'instant a pour effet de prendre une capture de l'écran (par simulation d'appui sur la touche PrintScreen) et de créer un fichier bitmap "vide" (sans image) à côté.
.386
.model flat, stdcall
option casemap :none
; INCLUDES ET BIBLIOTHEQUES
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
include \masm32\include\rasapi32.inc
include \masm32\include\advapi32.inc
include \masm32\include\shell32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\shell32.lib
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\rasapi32.lib
includelib \masm32\lib\advapi32.lib
includelib \masm32\lib\user32.lib
.data
pathbmp db "c:\masm32\bin\testil.bmp"
.code
start:
Push 0
Push 0
Push 0
Push VK_SNAPSHOT
Call keybd_event ; On appuie sur le touche PrintScreen.
Push 0
Push KEYEVENTF_KEYUP
Push 0
Push VK_SNAPSHOT
Call keybd_event ; On relache la touche PrintScreen.
Push 0
Call OpenClipboard ; On ouvre le presse papier (clipboard).
Push 0
Push FILE_ATTRIBUTE_NORMAL
Push OPEN_ALWAYS
Push 0
Push 0
Push GENERIC_WRITE
Push OFFSET pathbmp
Call CreateFile ; On crée un fichier bitmap.
Call CloseClipboard ; On ferme le presse papier.
Push 0
Call ExitProcess ; On quitte le programme.
end start
Mon problème est que j'aimerais beaucoup savoir s'il serait possible (et si oui COMMENT, merci) d'enregistrer le contenu du presse papier (à savoir la capture d'écran) dans le fichier bitmap.
Je pense que je peux utiliser l'API WriteFile pour cela mais je ne la comprends pas très bien (ou plutôt je ne vois pas comment faire). Si cela peut aider je précise que je peux toujours recuperer le handle du contenu du presse papier avec ceci :
Push CF_BITMAP
Call GetClipboardData
En vous remerciant par avance... ;)
A voir également:
[Screenshot, capture d'écran] Comment l'enregistrer dans un Bitmap ?
kinkey_wizard
Messages postés30Date d'inscriptiondimanche 24 octobre 2004StatutMembreDernière intervention 4 juillet 2005 22 déc. 2004 à 02:16
Je n'ai pas trouvé le module d'édition des posts, j'ai supposé qu'il n'existait pas ici. Veuillez m'excuser si ce n'est pas le cas.
C'était juste pour une précision : dans le code que j'ai donné au dessus je sais pertinament que le fait d'ouvrir et de refermer le presse papier ne sert à rien. J'ai rajouté cela uniquement en prévision d'une utilité future.