Pregunta

¿Alguien sabe cómo habilitar mediante programación / desactivar el estado real de la auto-respuesta fuera de oficina en Outlook 2007?

Ya búsquedas en el navegador de objetos en VS 2008 y encontró la Microsoft.Office.Interop.Outlook.OlBusyStatus enumeración, pero no he encontrado ninguna clase o cualquier otra cosa que utiliza este.

Cualquier idea se agradece, gracias y saludos

¿Fue útil?

Solución

ACTUALIZACIÓN: Actualizado el código de abajo usando código de ejemplo adaptado de esta entrada de blog que funcionará mejor en una variedad más amplia de las instalaciones de Outlook (por ejemplo, los que utilizan tanto Exchange y PST o acceder a múltiples buzones de Exchange).

Aquí está el código que funcionó para mí en Outlook 2007, para establecer el estado Fuera de la oficina de un archivo EXE externo (a 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;
    }
}

Asegúrese de que no está ejecutando el código como administrador y perspectivas como no Administrator-- de lo contrario puede obtener un error relacionado con la seguridad en Vista.

Tenga en cuenta que va a aparecer cuadros de diálogo de seguridad dentro de Outlook para garantizar que el usuario está bien con usted acceso al modelo de objetos de Outlook. Esto es normal cuando se accede modelo de objetos de Outlook desde un archivo EXE externo.

Sin embargo, si usted está teniendo acceso al modelo de objetos de un complemento, el código anterior no es totalmente correcta: en lugar de crear un nuevo objeto Outlook.Application a través del constructor, que necesita para obtener una referencia a el objeto Outlook.Application de confianza desde el interior de su complemento, como esto:

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

Por cierto, hay una buena artículo de MSDN sobre la seguridad de los complementos, que puede ser útil si llegas a tener diálogos de seguridad o errores.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top