using (...) nur nutzen wenn die Controls lokal installiert sind (COM/Assemlby)?

10/11/2008 - 11:11 von Volkan Senguel | Report spam
Hallo zusammen

Ich habe hier ein Problem welches ich nicht lösen konnte.

Und zwar haben wir hier überall Outlook 2007 installiert wo dann eine
Applikation auch die Kontakte importieren kann/soll.
Teils Rechner haben aber entweder Outlook 2003 oder gar kein Outlook/Office
drauf, da bekomme ich natürlich eine Fehlermeldung.

Ich nutze hierfür dies hier:


C:\Program Files\Microsoft Visual Studio 9.0\Visual


Studio Tools for Office\PIA\Office12\Microsoft.Office.Interop.Outlook.dll)

-
using Outlook = Microsoft.Office.Interop.Outlook;
-



Und habe dann eine Methode wo die Kontakte ausliest:
-
Outlook.Application app = new Outlook.ApplicationClass();
Outlook.NameSpace ns = app.GetNamespace("MAPI");
Outlook.MAPIFolder contacts =
ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);

for (int i = 1; i < contacts.Items.Count + 1; i++)
{
.CODE
}
-


Wie kann ich es hinkriegen dass ich auf Rechnern ohne Outlook 07 etc. nicht
eine Meldung bekomme das man die Version 12 installieren solle oder dass die
DLL nicht existiere etc...?

Danke im Voraus für jeden Hinweis
Volkan Senguel
 

Lesen sie die antworten

#1 Frank Dzaebel
10/11/2008 - 11:59 | Warnen spam
Hallo Volkan,

Wie kann ich es hinkriegen dass ich auf
Rechnern ohne Outlook 07 etc. nicht
eine Meldung bekomme das man die Version
12 installieren solle oder dass die
DLL nicht existiere etc...?



Entwickle Dein Programm mit der 2003 Outlook-
Version. Bei der Distributioerung werden
2003'er Calls über Policy Assemblies automatisch
auf 2007'er umgeleitet.
So werden keine Meldungen kommen bzgl.
der 2003er und 2007er Version kommen.

Um die Meldung bei nicht installiertem
Outlook nicht zu bekommen, kannst Du
etwas wie folgendes benutzen:

Type ot = Type.GetTypeFromProgID("Outlook.Application");
if (ot == null) return; // [OL nicht registriert] ...

try
{
object otApp = Activator.CreateInstance(ot);
}
catch { /* [OL nicht instanziierbar */}


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen