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 :

Une application dans une autre


Sujet :

Windows

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 39
    Points : 28
    Points
    28
    Par défaut Une application dans une autre
    Bonsoir à tous,

    D'abord je m'excuse si je n'ai pas posté au bon endroit.

    Je souhaiterais savoir si il est possible avec l'API Windows, de pouvoir récupérer l'affichage d'une application même réduite ou invisible et de l'envoyer vers un périphérique ou sur un réseau.

    Je vous explique, sur mon nouvel ordinateur, je n'ai pas de sortie TV, ce qui est assez gênant pour le jeu FS2004 où j'ai besoin de voir les cartes en plus du jeu.
    J'ai par contre une FreeBox avec la FreeBox TV, j'ai trouvé le logiciel PiFree PC qui permet de capturer l'écran de l'ordinateur et il transmet cela à la partie TV de la FreeBox qui va l'afficher sur le FreePlayer.

    Je souhaiterais donc programmer un logiciel qui fasse la même chose mais pour une application précise. Ca je pense que ce n'est pas trop dur, mais la difficulté est si l'application est réduite ou invisible.

    Car en fait, je souhaite envoyer à la FreeBox une application qui n'est pas affiché (alors que PiFree PC n'envoi à la FreeBox que ce qui est affiché).
    Une telle chose me permettrait alors d'émuler en quelques sortes une sortie TV et sans devoir changer quoi que se soit sur mon matériel informatique comme télévisuel.


    Par extension, cela me permettrait dans un autre logiciel que je programme, d'intégré une fonctionnalité de gestion de plusieurs écrans par un tel biais (mais ça c'est pour plus tard, c'est de la fioriture, ce qui m'importe là c'est l'histoire de FS2004).

    Donc voila, si certains savent ou auraient des idées, je suis preneur.

    P.S. : J'ai cherché sur le MSDN car j'en ai parlé avec mon frère qui est développeur, et il me dit que quand une application est réduite, en théorie Windows ne se préoccupe plus du WM_PAINT. D'après le MSDN il est possible de forcer son traitement, mais je ne comprend pas si il est possible qu'une application ordonne à Windows de le traiter pour une autre, mais il faudrait pas que l'application concerné passe au premier plan, donc qu'elle reste là où elle est et, que mon application puisse simplement envoyer les données à la FreeBox permettant donc son affichage sur ma TV via le FreePlayer.

  2. #2
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    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 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par christophedlr Voir le message
    Bonsoir à tous,

    Je souhaiterais savoir si il est possible avec l'API Windows, de pouvoir récupérer l'affichage d'une application même réduite ou invisible et de l'envoyer vers un périphérique ou sur un réseau.
    basiquement oui si tu arrives à avoir le HWND le handle de fenêtre donc connaissant le HWND tu peux obtenir un "contexte" de périphérique HDC pour le dessin.
    Pour obtenir le HWND d'une fenêtre il existe des API pour cela
    Ceci dit Fs2004 tourne avec Direct3d 9 et les HDC c'est pour le GDI
    Donc pour obtenir des captures de FS2004 soit il faut aller dans le bas-niveau avec un Device Driver soit faire des copies d'écran à intervalle régulier.
    Je ne vois que cette solution-là

    Je vous explique, sur mon nouvel ordinateur, je n'ai pas de sortie TV, ce qui est assez gênant pour le jeu FS2004 où j'ai besoin de voir les cartes en plus du jeu.
    vaut mieux prendre une solution Matrox TripleHead avec plusieurs moniteurs
    http://www.matrox.com/graphics/en/products/gxm/
    J'ai par contre une FreeBox avec la FreeBox TV, j'ai trouvé le logiciel PiFree PC qui permet de capturer l'écran de l'ordinateur et il transmet cela à la partie TV de la FreeBox qui va l'afficher sur le FreePlayer.

    Je souhaiterais donc programmer un logiciel qui fasse la même chose mais pour une application précise. Ca je pense que ce n'est pas trop dur, mais la difficulté est si l'application est réduite ou invisible.
    cf ma remarque précédente : avec sendkeys() on fait des captures d'écran et on envoie une bitmap dans le presse-papier c'est la solution la plus simple..

    si l'application est réduite et connaissant son adresse mémoire de processus , on peut la rendre active ( il y a des API pour cela)
    On peut le savoir avec IsIconic()

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 39
    Points : 28
    Points
    28
    Par défaut
    Etant donnée que je n'ai pas d'autres écrans, cette dernière solution n'est pas bonne.

    Pour FS2004, c'est pas lui que je veux capturer car il resterait sur l'affichage de mon écran, mais capturer Acrobat Reader pour avoir sur la TV les cartes affichés.

    Pour le reste, une petite question, en la rendant active, ça risque pas justement de la faire passer en avant-plan et provoqué par la même occasion le basculement entre l'application actuelle et cette dernière ?

    Dans un tel cas, rendre l'application invisible me permettrait-il dans ce cas là d'éviter un passage en avant-plan d'une autre application mais faire la capture de celle que je souhaite capturer ?


    Désolé pour mes questions, mais bon avant de me lancer, je tiens à disposer de toute les données

    En tous cas, merci de ton aide

  4. #4
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    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 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Salut
    Citation Envoyé par christophedlr Voir le message
    Pour FS2004, c'est pas lui que je veux capturer car il resterait sur l'affichage de mon écran, mais capturer Acrobat Reader pour avoir sur la TV les cartes affichés.

    je ne comprends pas ce que tu veux dire : tu parles d'avoir des cartes ( je suppose des cartes d'approches Jeppensen au format PDF affichées avec Acrobat Reader ou autres -ce serait bien de détailler plus ) affichées sur la TV mais dans le premier message tu dis que tu n'as pas de sortie TV
    je n'y comprends plus rien
    Citation Envoyé par christophedlr Voir le message
    Pour le reste, une petite question, en la rendant active, ça risque pas justement de la faire passer en avant-plan et provoqué par la même occasion le basculement entre l'application actuelle et cette dernière ?
    est-ce que c'est possible de détailler 1) 2) 3)
    étape 1: je fais cela
    étape 2: je fais cela
    étape n : je veux faire cela
    avec une certaine logique
    Merci
    Désolé je suis informaticien moi je fonctionne avec une logique séquentielle comme les instructions d'un programme informatique

Discussions similaires

  1. [Lazarus] Transférer une unité d'une application dans une autre
    Par Tolede37 dans le forum Lazarus
    Réponses: 2
    Dernier message: 29/05/2015, 18h28
  2. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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