begin process at 2008 07 21 02:03:16
1 213 553 membres
22 nouveaux aujourd'hui
14 167 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

IMPRESSION D'ÉCRAN DIRECTEMENT DANS UN JPG


Information sur la source

Catégorie :Graphique Niveau : Initié Date de création : 25/08/2002 Date de mise à jour : 25/08/2002 04:01:50 Vu / téléchargé: 4 155 / 342

Note :
9 / 10 - par 4 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

Description

C'est en réponse à une question du Forum.

Ce source permet de réaliser des copies d'écran sous forme de fichier .JPG

Source

  • unit Unit1;
  • //
  • // Programme d'impression d'écran et de sauvegarde automatique en .JPG
  • //
  • // Par Nono40 bruno_g40@hotmail.com
  • //
  • // 25/08/2002 : Publication sur www.DelpfiFR.com
  • //
  • interface
  • uses
  • Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  • Dialogs, StdCtrls, ExtCtrls;
  • type
  • TForm1 = class(TForm)
  • Timer1: TTimer;
  • Edit1: TEdit;
  • Label1: TLabel;
  • procedure Timer1Timer(Sender: TObject);
  • private
  • { Déclarations privées }
  • public
  • { Déclarations publiques }
  • end;
  • var
  • Form1: TForm1;
  • implementation
  • Uses JPeg,ClipBrd;
  • {$R *.dfm}
  • Var UneFois:Boolean=False; // Permet de détecter le premier appui de la touche
  • AFaire :Boolean=False; // Retarde l'enregistrement du .JPG
  • procedure TForm1.Timer1Timer(Sender: TObject);
  • var BitMap :TBitMap;
  • Image :TJpegImage;
  • NomFichier :String;
  • i :Integer;
  • begin
  • // On doit enregistrer le presse-papier car PrintScreen à été appuyée
  • If AFaire And ClipBoard.HasFormat(cf_BitMap)
  • Then Begin
  • BitMap:=TBitMap.Create;
  • Image :=TJpegImage.Create;
  • Try
  • // Chargement dans un BitMap du presse papier ( au format BMP )
  • BitMap.LoadFromClipboardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0);
  • Image.CompressionQuality:=80;
  • // Conversion du BMP et JPG moins gros
  • Image.Assign(BitMap);
  • // Recherche d'un nom de fichier non utilisé
  • I:=1;
  • Repeat
  • NomFichier:=Edit1.Text+'\IMAGE'+IntToStr(i)+'.JPG';
  • Inc(i);
  • Until Not FileExists(NomFichier);
  • // Enregistrement de l'image
  • Try
  • Image.SaveToFile(NomFichier);
  • Except
  • End;
  • Finally
  • BitMap.Free;
  • Image .Free;
  • End;
  • End;
  • AFaire:=False;
  • // Test de la touche d'impression de l'écran
  • If ((GetAsyncKeyState(VK_SNAPSHOT) and 32768) <> 0)
  • Then Begin
  • If Not UneFois
  • Then Begin
  • // Si la touche est appuyée on enregistre le presse-papier sur le prochain OnTimer
  • UneFois:=True;
  • AFaire:=True;
  • End;
  • End
  • Else Begin
  • UneFois:=False;
  • End;
  • end;
  • end.
unit Unit1;

//
// Programme d'impression d'écran et de sauvegarde automatique en .JPG
//
// Par Nono40     bruno_g40@hotmail.com
//
// 25/08/2002 :  Publication sur www.DelpfiFR.com
//

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Edit1: TEdit;
    Label1: TLabel;
    procedure Timer1Timer(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

Uses JPeg,ClipBrd;
{$R *.dfm}

Var UneFois:Boolean=False; // Permet de détecter le premier appui de la touche
    AFaire :Boolean=False; // Retarde l'enregistrement du .JPG

procedure TForm1.Timer1Timer(Sender: TObject);
var BitMap     :TBitMap;
    Image      :TJpegImage;
    NomFichier :String;
    i          :Integer;
begin

  // On doit enregistrer le presse-papier car PrintScreen à été appuyée
  If AFaire And ClipBoard.HasFormat(cf_BitMap)
  Then Begin
    BitMap:=TBitMap.Create;
    Image :=TJpegImage.Create;
    Try
      // Chargement dans un BitMap du presse papier ( au format BMP )
      BitMap.LoadFromClipboardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0);
      Image.CompressionQuality:=80;
      // Conversion du BMP et JPG moins gros
      Image.Assign(BitMap);
      // Recherche d'un nom de fichier non utilisé
      I:=1;
      Repeat
        NomFichier:=Edit1.Text+'\IMAGE'+IntToStr(i)+'.JPG';
        Inc(i);
      Until Not FileExists(NomFichier);
      // Enregistrement de l'image
      Try
        Image.SaveToFile(NomFichier);
      Except
      End;
    Finally
      BitMap.Free;
      Image .Free;
    End;
  End;
  AFaire:=False;

  // Test de la touche d'impression de l'écran
  If ((GetAsyncKeyState(VK_SNAPSHOT) and 32768) <> 0)
  Then Begin
    If Not UneFois
    Then Begin
      // Si la touche est appuyée on enregistre le presse-papier sur le prochain OnTimer
      UneFois:=True;
      AFaire:=True;
    End;
  End
  Else Begin
    UneFois:=False;
  End;
end;

end.
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

    Aucun commentaire pour le moment.

Ajouter un commentaire

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS