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

C++Builder Discussion :

Accès à une application ouverte (OLE Automation ?) [FAQ]


Sujet :

C++Builder

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Accès à une application ouverte (OLE Automation ?)
    Bonjour,
    Soit une application A (qui tourne, lancée par l'utilisateur, qui récupère des données et les affiche dans une ou plusieurs MSFlexGrid)

    Je dois faire une application B qui soit capable de récupérer le contenu actuel des MSFlexGrid de l'application A.

    Pour l'instant, j'arrive à repérer le Handle de la fenêtre de l'appli A et les Handles des fenêtres de type MSFlexGridWndClass contenant chacune une MSFlexGrid. Par contre, de là, je n'ai aucune idée de ce qu'il faut faire pour récupérer le contenu des MSFlexGrid.

    Si quelqu'un a une idée, ou un conseil...
    Merci d'avance
    Pascal

  2. #2
    Futur Membre du Club
    Inscrit en
    Avril 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Quelqu'un avait déjà posé cette question... Je te donne le lien vers le Post pour voir si tu y trouve des trucs qui peuvent t'intéresser...
    http://www.developpez.net/forums/viewtopic.php?t=3535
    A+

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci,
    Effectivement, ça ressemble un peu mais pour ce qui est du Pipe, de la mémoire partagée, de DDE ou du presse papier, c'est inutilisable :
    Je ne suis pas maître de l'application A, c'est pas moi qui l'ai écrite et j'ai pas les sources.
    Je ne suis maître que de l'application B.
    Je pense que la solution se trouve quelque part dans COM ou OLE Automation mais tous les exemples que j'ai trouvé créent eux-même l'instance ActiveX à utiliser (création d'un Classeur Excel, d'un document Word...) alors forcément, c'est + facile ensuite d'invoquer des propriétés (sur un objet créé par l'appli, on a déjà le pointeur qui va bien).
    Alors que dans mon cas, l'objet MSFlexGrid est créé par une autre application. Mon but est seulement d'y accèder dans mon application. Encore une fois, pour l'instant, je ne dispose que handle de la fenêtre contenant la MSFlexGrid (MSFlexGridWndClass).
    Merci encore pour tout renseignement.
    (je peux pas croire que personne ait jamais fait ça!)
    A++
    Pascal

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1
    Points : 1
    Points
    1
    Par défaut T'as deja trouvé une solution??????????????
    Je le même probleme que toi, et j'arrive pas à utiliser l'objet COM, si tu as trouvé la solution, svp svp svp svp svp svp laisse moi la voir!

    Salut!

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Toujours pas...
    Hello,

    Ben non, je n'ai pas trouvé... j'ai même un peu laissé tomber en désespoir de cause.
    Si quelqu'un sait faire ça ou si tu trouves une solution, merci de la partager ici.
    Pascal

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    Il faudrait regarder du côté de GetActiveObject de OleAutomation.
    Dans le principe, CreateObject deonne une ainstance Variant de l'object automation à utiliser et GetActiveObject donne une instance déjà existante.

    Je regarde de plus prés.
    A ta disposition
    Christophe MERLIER

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    Je te confirme que ça marche.
    J'ai fait le test avec Excel. Si il n'est pas lancé ça m'envoit bouler (il faut gerer l'erreur EOleSysError), sinon il fait le job.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    MSExcel = Variant::GetActiveObject("Excel.Application");
     
    // le job
    MSExcel.OlePropertySet("Visible", true);
     
    MSExcel.OlePropertyGet("Workbooks").OleProcedure("Add");
    MSExcel.OlePropertyGet("WorkSheets","Feuil2").OleProcedure("Select");
    MSExcel.OlePropertyGet("Range", "A1").OleProcedure("Select");
    wsprintf(buffer," Hello !");
    MSExcel.OlePropertyGet("ActiveCell").OlePropertySet("Value", buffer);
    A ta disposition
    Christophe MERLIER

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

Discussions similaires

  1. [Sécurité] sécurité d'accès à une application multi-tiers Java EE
    Par zerzy1982 dans le forum Java EE
    Réponses: 43
    Dernier message: 12/10/2007, 21h20
  2. [VBA-E] Activer une application ouverte
    Par Scritch852 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/05/2007, 15h45
  3. Réponses: 1
    Dernier message: 29/12/2006, 10h42
  4. Réponses: 15
    Dernier message: 15/05/2006, 09h26
  5. Réponses: 10
    Dernier message: 15/05/2006, 07h51

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