Bonjour
J'ai écrit la procedure ci-dessous pour pouvoir capturer l'écran, quoi qu'il contienne.
çà marche MAIS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 procedure copiecran(s:string); var aBitmap : TBitmap; Jp : TjpegImage; begin aBitmap := TBitmap.Create; Jp := TjpegImage.Create; //clipboard.clear; keybd_event(44{VK_SNAPSHOT},0,0,0);// Capture d'ecran du Bureau if Clipboard.HasFormat(cf_BitMap) then// si le clipBoard contient un bitmap >> dans Image1 aBitmap.LoadFromClipboardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0); jp.Assign(abitmap); jp.CompressionQuality := 100;{Qualite {Nombre de 1 a 100}; jp.SaveToFile(s); abitmap.free; jp.Free; end;
je n'enregistre pas l'écran tel qu'il est au moment où j'appelle la fonction mais celui capturé A L'APPEL PRECEDENT !
si j'execute le "clipboard.clear;", j'enregistre un fichier vide
J'ai essayé de répéter chacune des instructions, sans résultat.
Je peux toujours faire deux fois la manoeuvre qui appelle la fonction, mais c'est assez pénible, et parfois j'oublie et je perds des données
Quelqu'un a-t-il une solution ? Merci
Partager