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

Windows Discussion :

Capture d'un control HWND


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    925
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 925
    Par défaut Capture d'un control HWND
    Bonjour,

    Je sais créer un controle HWND et définir ses propriété (WNDPROC), bref.

    Mais je voudrais un controle spécial HWND incapturable.

    Je m'explique :
    Je veux protéger le contenue graphique à l'intérieur du controle spécial HWND contre la capture (impression écran) et de source de capture software.
    Le contenue capturé du controle spécial , on doit obtenir du noir ou du blanc ou couleur de fond du controle parent peu importe ,mais pas son contenue graphique.

    La solution serait de flasher le controle 20 fois par seconde : mais non ca ne me va pas.

    Merci beaucoup.

  2. #2
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Je ne pense pas que cela soit possible. As-tu déjà un vu logiciel qui le fasse ? Je sais par contre qu'il est possible de désactiver carrément la fonction Impr Ecran, mais apparemment ça ne te sera pas très utile. (Et si jamais, il y a google )

  3. #3
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 532
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 532
    Par défaut
    Salut,

    il est possible de simuler une impression écran avec SendKeys puis voir s'il y a une image dans le presse-papier.
    J'avais bricolé un programme d'abord pour un projet perso que jai refilé à un collègue pour un développement en entreprise.
    Donc ça me parait un peu difficile...


    Citation Envoyé par yann458 Voir le message
    Bonjour,
    Je sais créer un controle HWND et définir ses propriété (WNDPROC), bref.
    une WNDPROC n'est pas une propriété à proprement parler.
    C'est une fonction réentrante de type CALLBACK qui permet de traiter les messages placés par l'OS dans le thread de ton programme

    Citation Envoyé par yann458 Voir le message
    Mais je voudrais un controle spécial HWND incapturable.
    Je m'explique :
    Je veux protéger le contenue graphique à l'intérieur du controle spécial HWND contre la capture (impression écran) et de source de capture software.
    tout dépend de ce que tu appelles contenu graphique : si tu dessines dans ta fenêtre avec un HDC ,la solution toute simple c'est de dessiner dans un contexte de périphérique en mémoire.
    Selon le cas tu peux l'afficher sur la fenêtre avec un simple StretchBlit()
    Si ce que tu appelles contenu graphique c'est le layout (disposition ) des contrôles cela me parait difficile


    Il reste une possibilité : c'est de dessiner par programmation des contrôles avec accélération Direct X;selon les cas les logiciels de capture ne fonctionnent pas toujours avec Direct X

  4. #4
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    925
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 925
    Par défaut
    Je dessine du graphique , il n'y à pas de HWND enfant.
    StretchBlit serait une fonction DirectX , et il n'existe pas dans msdn.

    la solution toute simple c'est de dessiner dans un contexte de périphérique en mémoire.
    Mais comment faire ?

    Citation Envoyé par Mat.M Voir le message
    Salut,

    il est possible de simuler une impression écran avec SendKeys puis voir s'il y a une image dans le presse-papier.
    J'avais bricolé un programme d'abord pour un projet perso que jai refilé à un collègue pour un développement en entreprise.
    Donc ça me parait un peu difficile...




    une WNDPROC n'est pas une propriété à proprement parler.
    C'est une fonction réentrante de type CALLBACK qui permet de traiter les messages placés par l'OS dans le thread de ton programme



    tout dépend de ce que tu appelles contenu graphique : si tu dessines dans ta fenêtre avec un HDC ,la solution toute simple c'est de dessiner dans un contexte de périphérique en mémoire.
    Selon le cas tu peux l'afficher sur la fenêtre avec un simple StretchBlit()
    Si ce que tu appelles contenu graphique c'est le layout (disposition ) des contrôles cela me parait difficile


    Il reste une possibilité : c'est de dessiner par programmation des contrôles avec accélération Direct X;selon les cas les logiciels de capture ne fonctionnent pas toujours avec Direct X

  5. #5
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 532
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 532
    Par défaut
    Citation Envoyé par yann458 Voir le message
    StretchBlit serait une fonction DirectX , et il n'existe pas dans msdn.
    pardon c'était StretchBlt

    Citation Envoyé par yann458 Voir le message
    Mais comment faire ?
    http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx

    prendre la fonction
    int CaptureAnImage(HWND hWnd)

  6. #6
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    925
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 925
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    pardon c'était StretchBlt


    http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx

    prendre la fonction
    int CaptureAnImage(HWND hWnd)
    pour Stretchblt : je pense que son contenue graphique peux être capturer (impression écran peux le capturer).

Discussions similaires

  1. [WD11] Capturer l'évènement WM_LBUTTONDOWN sur un control WebBrowser
    Par Alain__B dans le forum WinDev
    Réponses: 3
    Dernier message: 02/04/2012, 16h16
  2. Réponses: 2
    Dernier message: 15/05/2010, 11h20
  3. Capture graphique d'un control Web
    Par Sebastos dans le forum ASP.NET
    Réponses: 8
    Dernier message: 03/09/2009, 11h44
  4. WinForm, HWND et control Win32
    Par xadrier dans le forum C++/CLI
    Réponses: 1
    Dernier message: 26/05/2008, 14h32
  5. Rx Controls Gif animés
    Par toufou dans le forum Composants VCL
    Réponses: 6
    Dernier message: 23/08/2002, 14h09

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