Поделиться через


Мгновенное выполнение правила

В этом примере показано мгновенное выполнение правила с помощью метода Execute(Object, Object, Object, Object) объекта Rule.

Пример

Примечание.

Приведенный ниже пример кода представляет собой фрагмент из книги Программирование приложений для Microsoft Office Outlook 2007.

Вы можете вызвать немедленное выполнение правила, вызвав метод Execute для объекта Rule . Параметры метода Execute являются необязательными. Если они не указаны, правило будет применяться ко всем сообщениям в папке "Входящие", но не к вложенным папкам папки "Входящие", и будут использоваться значения по умолчанию для параметров. В следующей таблице перечислены значения по умолчанию для необязательных параметров метода Execute .

Параметр

Значение по умолчанию

ShowProgress

False

Folder

Inbox

IncludeSubfolders

False

RuleExecuteOption

OlRuleExecuteOption.olRuleExecuteAllMessages

Выполнение правила можно отменить с помощью мастера правил и оповещений. Также можно отменить выполнение правила, присвоив параметру ShowProgress значение true, а затем выбрав команду отмены в диалоговом окне хода выполнения процесса. После отмены в диалоговом окне хода выполнения процесса метод Execute вернет ошибку.

В следующем примере кода процедура ExecuteManagerRule получает правило, созданное в процедуре CreateManagerRule раздела Создание правила для передачи почтовых элементов от руководителя и их пометки к исполнению. После этого в процедуре ExecuteManagerRule проверяется, является ли правило пустой ссылкой. Если правило не является пустой ссылкой, в процедуре ExecuteManagerRule вызывается метод Execute правила с параметрами по умолчанию, в результате чего правило немедленно выполняется.

Примечание.

[!Примечание] Чтобы выполнить правило однократно независимо от того, возвращает ли свойство Enabled значение true, используйте метод Rule.Execute. Чтобы применить правило к текущему и последующим сеансам, используйте свойство Rule.Enabled и метод Save(Object) .

Если вы используете Visual Studio для тестирования этого примера кода, сначала добавьте ссылку на компонент Microsoft Outlook 15.0 Object Library и задайте переменную Outlook при импорте пространства имен Microsoft.Office.Interop.Outlook. Инструкция using не должна находиться непосредственно перед функциями в примере кода, но ее нужно добавить перед объявлением общедоступного класса. В следующей строке кода показано, как выполнить импорт и назначение в C#.

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);
        }
    }
}

См. также