Question

Quelqu'un sait comment activer programme / désactiver l'état réel de l'extérieur du bureau répondeur automatique dans Outlook 2007?

Déjà recherché le navigateur d'objets dans VS 2008 et trouvé le Microsoft.Office.Interop.Outlook.OlBusyStatus de l'énumération, mais je ne trouve pas une classe ou quoi que ce soit d'autre en utilisant cela.

Toute idée est appréciée, merci et salutations

Était-ce utile?

La solution

Mise à jour: Mise à jour le code ci-dessous en utilisant le code d'échantillon adapté de ce billet de blog qui fonctionnera mieux dans une plus grande variété d'installations Outlook (par exemple ceux utilisant à la fois d'échange et la TVP ou accéder à plusieurs boîtes aux lettres Exchange).

Code Voici ce qui a fonctionné pour moi sur Outlook 2007, pour définir l'état OOF d'un EXE externe (Outlook):

Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.ApplicationClass();
Microsoft.Office.Interop.Outlook.NameSpace ns = app.Session;
foreach (Microsoft.Office.Interop.Outlook.Store store in ns.Stores)
{
    if (store.ExchangeStoreType == Microsoft.Office.Interop.Outlook.OlExchangeStoreType.olPrimaryExchangeMailbox)
    {
        store.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x661D000B", true); // false to turn off OOF
        break;
    }
}

Assurez-vous que vous n'êtes pas en cours d'exécution de ce code en tant qu'administrateur et perspectives comme non Administrator-- sinon vous pouvez obtenir une erreur liée à la sécurité sur Vista.

Notez qu'il affiche les boîtes de dialogue de sécurité dans Outlook pour vous assurer que l'utilisateur est OK avec vous d'accéder au modèle d'objet Outlook. Ceci est normal lorsque le modèle d'objet Outlook est accessible depuis un fichier EXE externe.

Si, cependant, vous accédez au modèle d'objet d'un complément, le code ci-dessus ne sont pas tout à fait correcte: au lieu de créer un nouvel objet Outlook.Application par le constructeur, vous vous devez obtenir une référence l'objet Outlook.Application de confiance à l'intérieur de votre complément, comme ceci:

Microsoft.Office.Interop.Outlook.NameSpace ns = this.Application.Session;
foreach (Microsoft.Office.Interop.Outlook.Store store in ns.Stores)
{
    if (store.ExchangeStoreType == Microsoft.Office.Interop.Outlook.OlExchangeStoreType.olPrimaryExchangeMailbox)
    {
        store.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x661D000B", true); // false to turn off OOF
        break;
    }
}

BTW, il y a une bonne MSDN article sur la sécurité des compléments, ce qui peut être utile si vous exécutez dans les boîtes de dialogue de sécurité ou des erreurs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top