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# Discussion :

problème OLE automation avec GetActiveObject()


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Points : 56
    Points
    56
    Par défaut problème OLE automation avec GetActiveObject()
    Bonsoir

    J'ai un soucis avec la méthode GetActiveObject, sensé me renvoyer une instance d'application (outlook dans mon cas) mais me renvoit une exception.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Runtime.InteropServices.Marshal.GetActiveObject
    Le truc un peu funky, c'est que je fais appel à cette méthode dans du code qui est exécuté depuis outlook, donc après qu'outlook soit lancé, donc je suis certain qu'il y a une instance d'outlook qui tourne.

    Dès qu'outlook perd le focus et que je lui redonne le focus, en revanche ça marche.
    Au début j'ai été assez surpris de ce comportement, puis je suis tombé sur cette technote qui explique bien les raisons de mon problème:


    l'application n'est pas enregistrée dans le Running Object Table (ROT), et donc je ne peux pas la récupérer et donc je ne peux pas exécuter mon code correctement

    Pour préciser un peu mon contexte, car je pense que ça peut être utile pour mieux visualiser, je développe un add-in sur un produit qui agit comme un plug-in dans outlook, donc ce n'est pas du tout du code outlook que je manipule. En revanche, j'aimerais sur certaines actions de l'utilisateur que je peux détecter dans mon add-on, pouvoir agir sur l'instance outlook ouverte via OLE automation.

    Et c'est rageant, car ça fonctionne nickel en fait, sauf que, au lancement d'outlook, mon code marchera pas parce que je ne peux pas récupérer l'instance d'outlook tant qu'outlook a le focus.

    D'après la technote, le seul moyen pour qu'outlook s'enregistre dans le ROT, c'est de lui faire perdre le focus, seulement ce n'est pas possible dans mon cas car je suis dans un contexte purement outlook.

    [edit] je veux dire par là que je n'ai aucune autre application ou fenêtre à qui donner le focus, et puis de toutes façons c'est crade comme solution et j'aimerais l'éviter

    Et je suis complètement bloqué là-dessus.

    Je ne vois pas comment faire. En gros s'il y avait un autre moyen de récupérer l'application outlook dans mon code sans passer par getActiveObject, ou alors s'il y avait moyen de "forcer" l'enregistrement de outlook dans la ROT ça serait nickel.

    Quelqu'un a-t-il une petite idée ou une orientation à me donner?

    Merci bcp d'avance

  2. #2
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Points : 56
    Points
    56
    Par défaut
    bon en fait je vais m'orienter autrement, je vais tenter de coupler mon code avec un code add-in outlook pour voir si ça peut fonctionner comme ça, j'ai bon espoir.

    néanmoins si qqun a des éléments de réponses à mon problème initial je suis preneur

  3. #3
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par duffman Voir le message
    bon en fait je vais m'orienter autrement, je vais tenter de coupler mon code avec un code add-in outlook pour voir si ça peut fonctionner comme ça, j'ai bon espoir.

    néanmoins si qqun a des éléments de réponses à mon problème initial je suis preneur
    Bon bah cette solution fonctionne parfaitement dans mon cas donc le problème est résolu.

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

Discussions similaires

  1. [Lazarus] Problème d'Ole Automation avec Word : Mot réservé
    Par Jon Shannow dans le forum Lazarus
    Réponses: 5
    Dernier message: 12/02/2014, 08h36
  2. Problème d'Automation avec Word 2010
    Par brum dans le forum Visual C++
    Réponses: 0
    Dernier message: 04/07/2011, 17h53
  3. Problème OLE DB avec Delphi 7
    Par tomy29 dans le forum Bases de données
    Réponses: 0
    Dernier message: 07/11/2007, 14h53
  4. Problème d'affichage avec OLE
    Par philippef dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 14/08/2006, 23h46
  5. Ole automation avec MFC
    Par jagboys dans le forum MFC
    Réponses: 7
    Dernier message: 14/06/2006, 11h15

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