Compartilhar via


Executar uma regra instantaneamente

Este exemplo mostra como executar uma regra instantaneamente usando o método Execute(Object, Object, Object, Object) do objeto Rule.

Exemplo

Observação

O exemplo de código a seguir é um trecho de Programar aplicativos para o Microsoft Office Outlook 2007.

Você pode fazer uma regra ser executada imediatamente chamando o método Execute no objeto Rule. Os parâmetros para o método Execute são opcionais. Se eles não forem especificados, a regra será aplicada a todas as mensagens na Caixa de Entrada, mas não às subpastas da Caixa de Entrada, e os valores padrão para os parâmetros serão usados. A tabela a seguir lista os valores padrão para os parâmetros opcionais do método Execute.

Parâmetro

Valor padrão

ShowProgress

False

Pasta

Caixa de Entrada

IncludeSubfolders

False

RuleExecuteOption

OlRuleExecuteOption.olRuleExecuteAllMessages

Você pode cancelar a execução de uma regra usando o Assistente de Regras e Alertas. Também é possível cancelar a execução de uma regra definindo o parâmetro ShowProgress como true e cancelando a caixa de diálogo de progresso. Depois de cancelar a caixa de diálogo de progresso, Execute retornará um erro.

No exemplo de código a seguir, ExecuteManagerRule é a regra criada no procedimento CreateManagerRule do tópico Criar uma regra para itens de email do arquivo de um gerente e sinalizá-la para acompanhamento. ExecuteManagerRule, em seguida, verifica se a regra não é uma referência nula. Se a regra não for uma referência nula, ExecuteManagerRule chama o método Execute na regra com parâmetros padrão, instantaneamente executando a regra.

Observação

Para aplicar uma regra uma vez, independentemente de se a propriedade Enabled retorna true, use o método Rule.Execute. Para aplicar a regra para a sessão atual e sessões futuras, use a propriedade Rule.Enabled e o método Save(Object).

Se usar o Visual Studio para testar este exemplo de código, adicione primeiro uma referência ao componente da biblioteca de objetos do Microsoft Outlook 15.0 e especifique a variável do Outlook quando importar o namespace Microsoft.Office.Interop.Outlook. A instruçãousing não deve ocorrer diretamente antes das funções no exemplo de código, mas deve ser adicionada antes da declaração de classe pública. The following line of code shows how to do the import and assignment in 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);
        }
    }
}

Confira também