OVH Cloud OVH Cloud

Operation non disponible avec COM

3 réponses
Avatar
Delf
Bonjour.

J'essaie d'accéder à une instance d'une application.

Son ProgID est : AME.Client (vérifié dans la base des registres).

Dans mon programme :

using System.Runtime.InteropServices;

AME.Client objAME = Marshal.GetActiveObject("AME.Client") as AME.Client;

Exception levée : "Operation non disponible".

Des idées ? Me tromperais-je ? Possible...
Merci.

--
Delf

3 réponses

Avatar
Frédéric Queudret [MS]
Bonjour,

GetActiveObject vous permet de récupérer une référence à une instance de
l'application qui "s'exécute".
Pour instancier un composant activeX, mieux vaut ajouter une référence à la
DLL dans Visual Studio.
Si vous n'avez pas VS.NET, utilisez tlbimp.exe en ligne de commandes pour
créer l'assembly RCW.
cdlt,
Frédéric.

"Delf" wrote in message
news:423949ae$0$27997$
Bonjour.

J'essaie d'accéder à une instance d'une application.

Son ProgID est : AME.Client (vérifié dans la base des registres).

Dans mon programme :

using System.Runtime.InteropServices;

AME.Client objAME = Marshal.GetActiveObject("AME.Client") as AME.Client;

Exception levée : "Operation non disponible".

Des idées ? Me tromperais-je ? Possible...
Merci.

--
Delf


Avatar
Delf
Frédéric Queudret [MS] wrote:

GetActiveObject vous permet de récupérer une référence à une instance de
l'application qui "s'exécute".
Pour instancier un composant activeX, mieux vaut ajouter une référence à la
DLL dans Visual Studio.



Je l'ai fait pour un composant COM via TLBimp puis directement dans le
browser de composants COM de VS.NET.

Je ne souhaite pas instancier de nouveau mais utiliser une instance en
cours d'exécution. Après maintes recherches sur le NET,
GetActiveObject() me paraissait la bonne solution...

--
Delf
Avatar
Frédéric Queudret [MS]
D'accord effectivement dans ces conditions GetActiveObject est bien la
méthode à utiliser.
Voici un lien vers un article du support qui traite d'un problème similaire
au votre:
http://support.microsoft.com/kb/316125/FR-FR/

Dites moi si cela vous aide.
Frédéric.

"Delf" wrote in message
news:423986b1$0$27987$
Frédéric Queudret [MS] wrote:

GetActiveObject vous permet de récupérer une référence à une instance de
l'application qui "s'exécute".
Pour instancier un composant activeX, mieux vaut ajouter une référence à
la DLL dans Visual Studio.



Je l'ai fait pour un composant COM via TLBimp puis directement dans le
browser de composants COM de VS.NET.

Je ne souhaite pas instancier de nouveau mais utiliser une instance en
cours d'exécution. Après maintes recherches sur le NET, GetActiveObject()
me paraissait la bonne solution...

--
Delf