[Screenshot] Capture et enregistrement. [Résolu]

Signaler
Messages postés
30
Date d'inscription
dimanche 24 octobre 2004
Statut
Membre
Dernière intervention
4 juillet 2005
-
Messages postés
3
Date d'inscription
vendredi 4 juillet 2003
Statut
Membre
Dernière intervention
13 février 2006
-
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

Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
10
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 ! :)
Messages postés
30
Date d'inscription
dimanche 24 octobre 2004
Statut
Membre
Dernière intervention
4 juillet 2005

Merci beaucoup à vous 2...
;) ...
Messages postés
3
Date d'inscription
vendredi 4 juillet 2003
Statut
Membre
Dernière intervention
13 février 2006

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