Instancier un objet com en dynamique

Signaler
Messages postés
172
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
3 juin 2011
-
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
-
Bonjour,

Je doit faire une petite application qui doit utiliser un objet com fournit par une autre application. Le problème et que mon appli doit fonctionner même si l'autre application n'est pas installée et à forciori le serveur com non plus. Et je ne vois pas comment intancié l'objet com dans le cas où il est installer.
Donc problème rencontré :
- Détection de l'existance de l'objet com.
- Instanciation en dynamique de l'objet com.

Une solution ?

Merci

CedKat

2 réponses

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Bonjour,
Si ton objet COM est enregistré et présent sur ton poste de dév, ajoute à ton projet une référence à celui .
Dans ton code dans un bloc Try...Catch instancie-le (mécanisme Early Binding) 

Try
{
   TonObjetCOM MyObjet = new TonObjetCOM()
   .....
}
Catch
{
   .....tu gère ton erreur
}

et si tu te retrouves dans le Catch alors il n'est pas enregistré ou présent sur le poste ou ton appli tourne.
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
20
salut,

tu peux tester si la dll com est installée par Type.GetTypeFromCLSID ou par Type.GetTypeFromProgID...puis si tu récupère un Type, alors tu peux utiliser Activator.CreateInstance pour en créer une instance...

ShareVB