[Screenshot] Capture et enregistrement.

Résolu
kinkey_wizard Messages postés 30 Date d'inscription dimanche 24 octobre 2004 Statut Membre Dernière intervention 4 juillet 2005 - 13 nov. 2004 à 17:27
lucn Messages postés 3 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 13 février 2006 - 13 févr. 2006 à 14:15
Bonjour tout le monde.

Alors voilà je voudrais ordonner à mon programme de faire une capture d'écran. J'ai vu quelque part qu'il fallait utiliser cette api : keybd_event.
Est-ce que le fait de rentrer ce code suffit ou il faut autre chose :

keybd_event 44
// 44 pour la touche Impr Ecran.

?

De même je voudrais également faire en sorte que la capture s'enregistre dans un fichier, comment puis je faire cela ?

Merci bcp pour les futures réponses :) ...

3 réponses

ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
13 nov. 2004 à 17:57
Slt kinkey_wizard !

T'es pa obligé de passer par keybd_event...
Utilise plutôt ce code...
Il faut juste que tu mettes le composant SaveDialog sur ta fiche.

var  
ImageBureau:TPicture;

------------

procedure TForm1.CaptureImage;
begin
 ImageBureau := TPicture.Create; //Création de l'image
 {On adapte les dimensions de l'image à celles de l'écran}
 ImageBureau.Bitmap.Width := Screen.Width;  ImageBureau.Bitmap.Height := Screen.Height;hauteur
  BitBlt(ImageBureau.Bitmap.Canvas.Handle,0,0,Screen.Width,Screen.Height,
          GetDC(GetDesktopWindow),0,0,SrcCopy);//capture l'image 
end

procedure TForm1.SauvegarderImage;
begin
  if SaveDialog1.Execute then
  ImageBureau.SaveToFile(SaveDialog1.FileName);
  ImageBureau.Free; // On libère l'image
end;


Voilà c tt !
Bonne Prog'
Nico

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! :)
0
kinkey_wizard Messages postés 30 Date d'inscription dimanche 24 octobre 2004 Statut Membre Dernière intervention 4 juillet 2005
13 nov. 2004 à 18:15
Merci beaucoup à vous 2...
;) ...
0
lucn Messages postés 3 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 13 février 2006
13 févr. 2006 à 14:15
rocedure TForm1.CaptureImage;
begin
ImageBureau := TPicture.Create; //Création de l'image
{On adapte les dimensions de l'image à celles de l'écran}
ImageBureau.Bitmap.Width := Screen.Width; ImageBureau.Bitmap.Height := Screen.Height;hauteur
BitBlt(ImageBureau.Bitmap.Canvas.Handle,0,0,Screen.Width,Screen.Height,
GetDC(GetDesktopWindow),0,0,SrcCopy);//capture l'image
end

procedure TForm1.SauvegarderImage;
begin
if SaveDialog1.Execute then
ImageBureau.SaveToFile(SaveDialog1.FileName);
ImageBureau.Free; // On libère l'image
end;

Mon problème: avec certains ordinateurs, la capture est une "image blanche" tout comme l'impression- feuille blanche ou parfois une ligne latéral - (je demande que l'image soit sauvée comme fichier et qu'elle soit imprimée)
Quelqu'un aurait-il une explication pour pouvoir corriger ce "défaut"
un grand merci
lucien
0
Rejoignez-nous