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 :

transfert de l'image affichée a l'ecran sur un autre poste


Sujet :

Windows

  1. #1
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 949
    Points : 725
    Points
    725
    Par défaut transfert de l'image affichée a l'ecran sur un autre poste
    bonjours,

    Suite a des pre-requis pour mon exament, je pense developper un logiciel de prise en main a distance, et ce, afin de couvrir les points suivant :
    -client/serveur (ouverture de sockets)
    -evenementiel(capture sourie/clavier)
    -objet(si jai bien compris, la souris est un objet... et non un animal)

    pour ce faire, j'ai lut des docs sur developpez.com sur :
    - les sockets (ca m'a la'iar pas aml
    - la simulation sous window$ du couple clavier/souris

    j'ai deja les bases avec la SDL pour recupérer les otuches pressées chez le manipulateur.

    il me reste a transferrer les images du poste.
    et la je ne sait comment faire :
    un print screen toutes les Nsecondes puis envoie en jpeg => recupe coté manipulateur et affichage avec SDL?

    ca va etre lent, non?

    comment feriez vous, pliz?
    mici!

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 683
    Points
    10 683
    Billets dans le blog
    3
    Par défaut
    C'est un projet difficile, qui n'a pas grand chose à voir avec le C++ (je déplace vers Prog Windows).
    Si je me souviens bien, VNC pose tout un tas de hook pour détecter les actions utilisateurs et mettre à jour en conséquences. Je ne suis pas sûr que la SDL t'aide beaucoup.

  3. #3
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 949
    Points : 725
    Points
    725
    Par défaut
    ma question porte juste sur la capture de l'image, et sa trnasmission... po plus hein

    mici de ta reponse

    ps : c'est quoi un "hook"? stp

    edit : auto reponse :
    http://tcharles.developpez.com/simul/#quoi

  4. #4
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 949
    Points : 725
    Points
    725
    Par défaut
    au vu de ta reponse, je pense qu'une precision s'impose : ce ne sera pas un logiciel hyper developpé de fou!

    faut plus voir un prog poubelle : une fois mon examen terminé, il ne servira plus... y'a bien mieux ailleurs...

    et puis je suis pas un pro du C... ni d C++ (jamais touché...)

    donc... bein moi c plus du GP (Garbage Programming qu'autre chose)
    donc si ca lag, si c'est pas optimisé c'est aps grave, le tout c'est que ca tourne de facon potable...
    CAD : 1 image toutes les 5 secondes c'est ptet abusé... mais je sait pas les performances que je peut ateindre avec la methode que j'envisage

    ps : pensez vous que je doit aller voir du coté : "Développement réseaux"?

  5. #5
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 683
    Points
    10 683
    Billets dans le blog
    3
    Par défaut
    Ben y'a plusieurs parties dans ton logiciel. Commence par coder le client-serveur, puis enrichie.
    Pour un truc simple, je te conseille de ne pas te préocuper du déplacement de la souris mais simplement du clic. Après chaque clic transmis tu fais un nouveau screenshot que tu envoies.

  6. #6
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 949
    Points : 725
    Points
    725
    Par défaut
    oki, mici

    et pour la capture de l'image a l'ecran, y'a que un print screen, ou bien, par exemple avec la SDL, je peut avoir acces a la zone memoire de la carte vidéeo ou est stockée l'image affichée?

    en gros, envisage tu, avec tes conniassances, une autre solution que celle du print screen (qui, je l'image, mais c'est juste un supposition) doit etre tres lente...

  7. #7
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 683
    Points
    10 683
    Billets dans le blog
    3
    Par défaut
    Ben y'a mieux que de simuler print screen oui, c'est de passer par du code (sujet déjà traité ici). L'idéal serait de ne faire une capture que de la fenêtre qui a changé, mais ça rend tout de suite plus complexe. Tu peux aussi envisager un algo maison capable de déterminer les pixels modifiés et d'envoyer juste une sorte de "patch", etc... reste à coder tout ça ensuite.

  8. #8
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 949
    Points : 725
    Points
    725
    Par défaut
    http://www.developpez.net/forums/vie...ighlight=ecran

    j'ai trouvé ce topis, mais etant un ABSOLU debutant...
    bein j'y comprend rien ^^

    je demande po un cours, mais juste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    HDC hdcScreen = CreateDC("DISPLAY", NULL, NULL, NULL); 
      
        int screenWidth   = GetDeviceCaps(hdcScreen, HORZRES); 
        int screenHeight  = GetDeviceCaps(hdcScreen, VERTRES); 
        int printerWidth  = GetDeviceCaps(pd.hDC,    HORZRES); 
        int printerHeight = GetDeviceCaps(pd.hDC,    VERTRES);
    savez vous de quel librairie ca vient?
    ou sinon, quelle librairie je doit utiliser?

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    GetDeviceCaps(), ça vient directement de l'API Windows: Aucune librairie n'est nécessaire.

  10. #10
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 683
    Points
    10 683
    Billets dans le blog
    3
    Par défaut
    Un programme Win32 commence traditionnelement par:

  11. #11
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 949
    Points : 725
    Points
    725
    Par défaut
    oki, merci

    je vait suivre la piste alors

  12. #12
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 949
    Points : 725
    Points
    725
    Par défaut
    alors, on crée un DC :
    http://msdn.microsoft.com/library/de...vcons_5g83.asp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL)
    ensuite, on le ernd compatible avec l'ecran?
    http://msdn.microsoft.com/library/de...tmaps_5a5h.asp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    hdcCompatible = CreateCompatibleDC(hdcScreen);
    ensuite, on copie ca dans une bitmap :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    hbmScreen = CreateCompatibleBitmap(hdcScreen, 
                         GetDeviceCaps(hdcScreen, HORZRES), 
                         GetDeviceCaps(hdcScreen, VERTRES));
    et ca m'a l'air bon...

    merci de votre aide, je vait tester tout ca

  13. #13
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Non, généralement, pour obtenir un DC compatible avec l'écran, mieux vaut faire un GetDC() d'une fenêtre, CreateCompatibleDC(), puis ReleaseDC() sur l'ancien (en tout cas, ça marche, et on n'a pas besoin de se casser le c*l sur les paramètres)

  14. #14
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 949
    Points : 725
    Points
    725
    Par défaut
    juste une pitite question : c'est quoi un DC?

    ca m'aiderait ptet a comprendre la logique derriere tout ca

  15. #15
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 683
    Points
    10 683
    Billets dans le blog
    3
    Par défaut
    Un DC, c'est en gros un objet de dessin. On en dessine pas directement sur une fenêtre, un bitmap, une imprimante ou je ne sais quoi d'autre. A chaque fois, on passe par un DC qui a la responsabilité de s'adapter au périphérique (device => Device Context) associé. Ainsi, un même code de dessin peut être utilisé sur une fenêtre, un bitmap, une imprimante... grâce au DC. Ce qui change, c'est juste le petit bout de code qui permet d'obtenir un DC à partir d'une fenêtre, d'un bitmap, d'une imprimante...

    CreateDC( TEXT("DISPLAY")
    ou
    GetDc( GetDesktopWindow()
    se valent il me semble

  16. #16
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 949
    Points : 725
    Points
    725
    Par défaut
    merci encore

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

Discussions similaires

  1. [UI] Garder l'image affichée après le select sur selectMenu
    Par Pelote2012 dans le forum jQuery
    Réponses: 3
    Dernier message: 13/01/2015, 10h36
  2. Transfert de Delphi sur un autre poste
    Par looping dans le forum EDI
    Réponses: 1
    Dernier message: 28/01/2008, 11h45
  3. image de mon disque système sur une autre partition
    Par Yepazix dans le forum Windows Vista
    Réponses: 3
    Dernier message: 16/01/2008, 23h43
  4. Réponses: 6
    Dernier message: 19/12/2007, 14h32
  5. Image ghost sur un autre post
    Par wareq dans le forum Autres Logiciels
    Réponses: 9
    Dernier message: 13/02/2007, 17h28

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