IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

Démarche pour réaliser un logiciel de "capture de page"


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut Démarche pour réaliser un logiciel de "capture de page"
    Bonjour ,

    J'ai vu sur le net un petit programme très très pratique pour réaliser des captures d'écran de façon intégrale.
    Je pense qu'un exemple parlera plus que les mots ... Le programme en question se nomme Web Screen Capture et sur sa page de présentation, il y a une photo on ne peut plus explicite!

    Je me demandais comment réaliser un outil similaire ?
    C'est peut-être simple, mais je ne vois pas trop comment m'y prendre.

    Merci d'avance pour vos réponses
    Ero

  2. #2
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    C'est plus une capture de page qu'une capture d'écran, mais ton libellé est trompeur
    captures d'écran de façon intégrale
    puisque j'avais compris que tu voulais réaliser intégralement le prog

    Il doit y a un webbrowser derrière, mais ensuite, mystère , peut-être une impression vers un fichier ?

  3. #3
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Citation Envoyé par qi130 Voir le message
    C'est plus une capture de page qu'une capture d'écran, mais ton libellé est trompeur puisque j'avais compris que tu voulais réaliser intégralement le prog
    J'ai modifié le titre de la discussion.
    Merci

    Citation Envoyé par qi130 Voir le message
    Il doit y a un webbrowser derrière, mais ensuite, mystère , peut-être une impression vers un fichier ?
    Pour le WebBrowser, oui, c'est sûr.
    Quant à l'impression, c'est pas bête! Je n'y avais même pas pensé.

    Je vais voir ça ce soir si je peux.
    Si d'autres ont des idées, qu'ils n'hésitent pas

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 923
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 923
    Par défaut
    Tu poses simplement un WebBrowser sur ta fiche et depuis OnDocumentComplete, tu appelles cette fonction :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    function SaveWebBrowserToBmp(aWebBrowser :TWebBrowser; aFileName :TFileName) :boolean;
    var
      Doc  :IHTMLDocument2;
      View :IViewObject;
      Rect :TRect;
    begin
      Result := FALSE;
      Doc := aWebBrowser.Document as IHTMLDocument2;
     
      if Assigned(Doc.Body) then
      begin
        //Largeur du WebBrowser à la largeur de l'écran et
        //récupération de la hauteur nécessaire
        aWebBrowser.Width  := Screen.Width;
        aWebBrowser.Height := (Doc.Body as IHTMLElement2).ScrollHeight;
     
        //Masque les ScrollBars
        Doc.Body.Style.Overflow := 'hidden';
     
        with TBitmap.Create do
        try
          Width  := aWebBrowser.Width;
          Height := aWebBrowser.Height;
          Rect := Bounds(0, 0, Width, Height);
     
          //Dessin
          Doc.QueryInterface(IViewObject, View);
          View.Draw(DVASPECT_CONTENT, 1, nil, nil, Application.Handle, Canvas.Handle, @Rect, nil, nil, 0) ;
     
          //Sauvegarde
          SaveToFile(aFileName);
          Result := TRUE;
        finally
          Free;
        end;
      end;
    end;
     
    procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
      const pDisp: IDispatch; var URL: OleVariant);
    begin
      SaveWebBrowserToBmp(WebBrowser1, 'c:\temp\Developpez.bmp');
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
      URL :OleVariant;
    begin
      URL := 'http://www.developpez.net/forums/f15/environnements-developpement/delphi/';
      webbrowser1.Navigate2(URL);
    end;

  5. #5
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 668
    Par défaut
    bonjour,
    pose un "WebBrowser" sur ta form,2 bouton:1 pour lancer la nivigation et le 2 bouton pour faire la capture, Timage et un edit(pour l'adresse web).
    ajoute dans la partie "uses":OleCtrls, SHDocVw_TLB,ActiveX, SHDocVw.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var
      Form1: TForm1;
        b:tbitmap;
    dans l'événement du 1 bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      webBrowser1.navigate(edit1.text);
      b:=TBitmap.Create;
    b.PixelFormat:=pf24bit;
    end;
    ensuite dans du l'événement du 2 bouton(pour la capture):
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    procedure TForm1.Button2Click(Sender: TObject);
    var
    ViewObject: IViewObject;
    sourceDrawRect: TRect;
    begin
     if webBrowser1.Document <> nil then
     try
        b.Width:=WebBrowser1.Width;
        b.Height:=WebBrowser1.Height;
        webBrowser1.Document.QueryInterface(IViewObject, ViewObject);
        if ViewObject <> nil then
        try
           sourceDrawRect := Rect(0, 0, b.Width, b.Height);
           ViewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Self.Handle,
           b.Canvas.Handle, @sourceDrawRect, nil, nil, 0);
        finally
               ViewObject._Release;
        end;
         Image1.Width:=WebBrowser1.Width;//dimensions de WebBrowser1
         Image1.Height:=WebBrowser1.Height;//dimensions de WebBrowser1
         Image1.Picture.Assign(b);
         image1.Refresh;
     except
     end;
     //sauvegarde:
     Image1.Picture.SaveToFile('C:\Image.bmp');
    end;
    A+

    NABIL74
    Fichiers attachés Fichiers attachés

  6. #6
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Ouaaa! J'en demandais pas tant Andnotor !
    Je suis pressé de tester le tout ce soir !!!

    T'es
    Merci !!!

  7. #7
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Super, ça fonctionne niquel!
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/12/2012, 11h58
  2. Réponses: 3
    Dernier message: 16/10/2012, 16h46
  3. [Présentation] cherche un logiciel pour réaliser un bel exposé
    Par laila morad dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 10/06/2007, 12h33
  4. Recherche 1 logiciel pour réaliser MCD..
    Par User dans le forum Outils
    Réponses: 4
    Dernier message: 26/03/2007, 10h14
  5. Réponses: 4
    Dernier message: 30/05/2006, 00h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo