Bonjour à tous,
Je tourne en rond depuis un moment avec un Pb de Presse papier.
J'ai une petite applis qui fait des capture d'ecran. Je souhaite coller cette capture d'écran dans le presse papier afin de pouvoir inserer l'iamge dans d'autre application.
Code pour faire la capture d'écran :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Begin keybd_event(vk_snapshot, 0, 0, 0); //colle la fenêtre active dans le clipboard sleep(200);//sinon ça plante des fois .... MyBitmap := TBitmap.create; if ClipBoard.HasFormat(CF_BITMAP) then begin MyBitmap.assign(Clipboard); with MyBitmap do try///traitement
Voici le code pour coller l'image dans le presse papier ( en l'ayny convertie au préalable au format PNG) :
Ca fonctionne, mais une seul fois ....si on procède à une seconde capture, aprés l'avoir insérée dans le presse papier, ça plante , j'ai le message et que l'on l'insére dans le presse papier , ça plante, j'obtiens le message suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 procedure TForm1.copy_clipboardClick(Sender: TObject); var newPng: TPNGObject; begin if (Image1.Picture.Bitmap.Empty) then begin showmessage('Il n''y a pas de capture à coller dans le presse papier!'); exit end else newPng := TPNGObject.Create; newPng.Assign(Image1.Picture.Bitmap); newpng.CompressionLevel := 9; Clipboard.Assign(newPng); newpng.Free; end;
J'ai D7 Perso et Vista comme OS./!\Impossible d'ouvrir le presse papier!.
Merci d'aider un codeur du dimanche qui déprime !
Partager