Vous pouvez utiliser le ProgID pour obtenir le type et l'activateur
Type objectType = Type.GetTypeFromProgID("Outlook.Application");
object outlook = Activator.CreateInstance(objectType);
Mais en utilisant cela en C#, vous perdrez toutes les informations de type (ie pas IntelliSense) et vous devez appeler une méthode laide pour invoquer les opérations avec LateBinding (google pour Type.Invoke)
Autre option est d'ajouter une référence à Microsoft.Office.Interop.Outlook.ApplicationClass, de sorte que vous avez compiler des informations de type de temps et de créer une instance pour Outlook de la manière habituelle
using Microsoft.Office.Interop.Outlook;
Microsoft.Office.Interop.Outlook.ApplicationClass outlook
= new Microsoft.Office.Interop.Outlook.ApplicationClass();
Ou vous pouvez utiliser ma bibliothèque Late Binding Helper et de l'utiliser comme celui-ci
Invoker outlook = BindingFactory.CreateAutomationBinding("Outlook.Application");
outlook.Method("Quit").Invoke();
Pas IntelliSense avec celui-ci, mais au moins la bibliothèque vous permettra d'économiser des appels laids à Type.Invoke et donner vous une interface fluide à la place.
Je pense que cela va fonctionner :). Merci! – jeje1983
Ne s'applique pas vraiment au code dans la question, mais ok –