Laden...

Primary Interop Assemblies optional einschalten

Erstellt von live2 vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.183 Views
L
live2 Themenstarter:in
34 Beiträge seit 2005
vor 17 Jahren
Primary Interop Assemblies optional einschalten

Ich baue an einer Software die eine zusätzliche Funktion haben soll mit der man email auslesen kann das Funktioniert soweit schon alles Prima.

Das Problem das ich derzeit habe ist das noch nicht alle Office2003 verwenden deshalb möchte ich es nur einschalten wenn er auch die benötigten komponenten besitzt - das Problem ist aber das meine Setup Routine (die integrierte von VS2005 - Veröffentlichen) die installation nicht ausführt wenn die Primary Interop Assemblies nicht installiert sind.

Wie kann ich das verhindern?

Danke live2

2.223 Beiträge seit 2005
vor 17 Jahren

moin

ch würde es möglicherweise als Plugin hinzu nehmen

ist der komplette Code denn schon soweit ausgelagert das man es zb als Plugin System umzusetzen könnte

mfg

L
live2 Themenstarter:in
34 Beiträge seit 2005
vor 17 Jahren

hab schon alles in einer klasse reicht das?


using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Interop.Outlook;
using System.Windows.Forms;

namespace frontend
{
    class mapi_mail
    {
        public string[] start()
        {
            int mails=0;
            string subject = "";
            ApplicationClass OutlookApplication = new ApplicationClass();
            NameSpace outlookNamespace = OutlookApplication.GetNamespace("Mapi");


            // Postfächer und Ordner durchlaufen und Inbox suchen
            MAPIFolder inbox = null;
            MAPIFolder movefolder = null;

            for (int j = 1; j <= outlookNamespace.Session.Folders.Count; j++)
            {
                if (outlookNamespace.Session.Folders[j].Name == "Mailbox - Backupcheck")
                {
                    for (int k = 1; k <= outlookNamespace.Session.Folders[j].Folders.Count; k++)
                    {
                        if (outlookNamespace.Session.Folders[j].Folders[k].Name == "Inbox")
                        {
                            inbox = outlookNamespace.Session.Folders[j].Folders[k];
                        }
                        if (outlookNamespace.Session.Folders[j].Folders[k].Name == "Erledigt")
                        {
                            movefolder = outlookNamespace.Session.Folders[j].Folders[k];
                        }
                    }
                }
            }
            try
            {
                // Array erstellen in das die E-Mails abgelegt werden für die weitergabe
                mails = inbox.Items.Count;
                string[] container = new string[mails];

                for (int k = inbox.Items.Count; k > 0; k--)
                {
                    MailItem item = (MailItem) inbox.Items[k];
                    subject = item.Subject;
                    container[(k-1)] = subject.ToLower();
                    item.Move(movefolder);
                }
                return container;
            }
            catch
            {
                string[] container = null;
                return container;
                // Fehlerbehandlung
            }
        }
    }
}




2.223 Beiträge seit 2005
vor 17 Jahren

fast

das ganze jetzt in eine eigene Dll

und dann eine logik einfallen lasen das diese zb schalter abhängig dynamisch eingebunden wird und auch dann nur benutzt wird

such mal hier im forum nach plugin dort kannst du dir dann anregungen holen

mfg

L
live2 Themenstarter:in
34 Beiträge seit 2005
vor 17 Jahren

hab leider mit dem Thema genau noch nichts gemacht hast vielleicht ein Paar gute Beiträge die ich mir anschauen soll?

oder ein kurzes Tut?

2.223 Beiträge seit 2005
vor 17 Jahren
L
live2 Themenstarter:in
34 Beiträge seit 2005
vor 17 Jahren

das ist sehr hilfreich Danke 😁