Share via


Sofortiges Ausführen einer Regel

Dieses Beispiel zeigt, wie eine Regel sofort mithilfe der Execute(Object, Object, Object, Object)-Methode des Rule-Objekts ausgeführt wird.

Beispiel

Hinweis

Das folgende Codebeispiel ist ein Auszug aus Programming Applications für Microsoft Office Outlook 2007.

Sie können bewirken, dass eine Regel sofort ausgeführt wird, indem Sie die Execute-Methode für das Rule-Objekt aufrufen. Die Parameter für die Execute-Methode sind optional. Wenn sie nicht angegeben sind, wird die Regel auf alle Nachrichten im Posteingang angewendet, aber nicht auf die Unterordner des Posteingangs, und Standardwerte für die Parameter werden verwendet. In der folgenden Tabelle sind die Standardwerte für die optionalen Parameter der Execute-Methode aufgeführt.

Parameter

Standardwert

ShowProgress

False

Ordner

Posteingang

IncludeSubfolders

False

RuleExecuteOption

OlRuleExecuteOption.olRuleExecuteAllMessages

Sie können eine Regelausführung mithilfe des Regel- und Benachrichtigungs-Assistenten abbrechen. Eine andere Möglichkeit besteht darin, den ShowProgress-Parameter auf true festzulegen und dann das Dialogfeld mit der Fortschrittsanzeige abzubrechen. Nachdem Sie das Fortschrittsdialogfeld abgebrochen haben, gibt Execute einen Fehler zurück.

Im nachstehenden Codebeispiel ruft ExecuteManagerRule die Regel ab, die im Verfahren „CreateManagerRule“ aus dem Thema Erstellen einer Regel zum Ablegen von E-Mail-Elementen von einem Vorgesetzten und Kennzeichnen dieser Elemente für die Nachverfolgung erstellt wurde. ExecuteManagerRule prüft dann, ob die Regel kein NULL-Verweis ist. Wenn die Regel kein NULL-Verweis ist, ruft ExecuteManagerRule die Execute-Methode in der Regel mit Standardparametern auf, wodurch die Regel sofort ausgeführt wird.

Hinweis

[!HINWEIS] Wenn eine Regel nur einmal angewendet werden soll, unabhängig davon, ob die Enabled -Eigenschaft true zurückgibt, verwenden Sie die Rule.Execute-Methode. Soll die Regel für die aktuelle Sitzung und darüber hinaus verwendet werden, verwenden Sie sowohl die Rule.Enabled-Eigenschaft als auch die Save(Object) -Methode.

Wenn Sie Visual Studio verwenden, um dieses Codebeispiel zu testen, müssen Sie der Microsoft Outlook 15.0-Objektbibliothekkomponente zuerst einen Verweis hinzufügen und die Outlook-Variable angeben, wenn Sie den Microsoft.Office.Interop.Outlook-Namespace importieren. Die using-Anweisung darf im Codebeispiel nicht direkt vor den Funktionen stehen, sondern muss vor der öffentlichen Class-Deklaration hinzugefügt werden. Die folgende Codezeile zeigt, wie Sie den Import und die Zuweisung in C# vornehmen.

using Outlook = Microsoft.Office.Interop.Outlook;
private void ExecuteManagerRule()
{
    Outlook.AddressEntry currentUser =
        Application.Session.CurrentUser.AddressEntry;
    if (currentUser.Type == "EX")
    {
        try
        {
            string managerName = currentUser.
                GetExchangeUser().GetExchangeUserManager().Name;
            Outlook.Rule managerRule =
                Application.Session.DefaultStore.GetRules()[managerName];
            if (managerRule != null)
            {
                managerRule.Execute(false, Type.Missing,
                    Type.Missing, Type.Missing);
            }
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex.Message);
        }
    }
}

Siehe auch