none
Error al intentar abrir OUTLOOK 2013 mediante una llamada desde un archivo Javascript RRS feed

  • Pregunta

  • Hola buenas, estoy intentando resolver una incidencia que tiene un cliente al abrir Outlook 2013 cuando pulsa un botón personalizado de nuestra aplicación. Este botón lo único que hace es llamar a una función JavaScript (Customize_OnClickNodo()) que no recibe argumentos de entrada. El problema solo se manifiesta con la ultima versión de Outlook 2013. El código usado para abrir la aplicación es el siguiente:

    var OutlookApp;

    var MailItem;

    try {

        var OutlookApp = new ActiveXObject("Outlook.Application");

    var objNS = theApp.GetNameSpace('MAPI');

    var MailItem = OutlookApp .CreateItem(0);

    MailItem .to = ("Destinatario");

    MailItem.Subject = ("Prueba");

    MailItem.Body = ("Esto es una prueba");

       MailItem.display();

    } catch (err){

    alert("Error en la configuracion de Outlook.");

    }

    return true;

    El caso es que la función falla al crear el nuevo objeto ActiveXObject con parámetro "Outlook.aplication". El mensaje que genera, a parte del mensaje de error de la excepción, es el siguiente:

    El servidor de Automatización no puede crear el objeto

    La versión del sistema operativo que usa tanto el cliente como yo es Windows 7. He mirado en el editor de registros de Windows y parece que todo esta en orden. Al buscar en "HKEY_CLASSES_ROOT/CLSID/XXXX" donde "XXXX" es el CLSID de la aplicación de Outlook 2013 (CLSID localizado en "HKEY_LOCAL_MACHINE/SOFTWARE/Classes/Outlook.Aplication.15") la ruta especificada en el registro "LocalServer32" también lo es ("C:\PROGRA~1\MICROS~2\Office15\OUTLOOK.EXE"), pues desde la opción "ejecutar" me abre el programa pegando la ruta. He probado también a modificar el registro de la ruta poniendo la opción "/automation" al final como he visto en otras aplicaciones de Office 2013 tales como Word o Excel, pero sigo sin obtener resultados. Instale antes Office 2007 y al fijarme me doy cuenta de que en HKEY_LOCAL_MACHINE/SOFTWARE/Classes/... existen registros tales como "Outlook.Aplication.12" y "Outlook.Aplication" cuyo CLSID es el mismo que para "Outlook.Aplication.15". ¿Podría ser esta la raíz del problema? He establecido como predeterminados todos las aplicaciones de Microsoft Office. Desinstalé Office 2007 al completo y no me dio ningún fallo. La única aplicación que veo instalada desde el panel de control es "Microsoft Office 2003 Web Components". ¿Debería desinstalarla a su vez e instalar una versión mas nueva o correspondiente con Office 2013? Si alguien tuviese alguna idea de lo que ocurre me seria de mucha ayuda. ¡Muchas gracias por adelantado!

    Nota: He probado también a intentar abrir Word y Excel con un código semejante (new ActiveXObject(Word.Aplication)) y genera el mismo error.


    • Editado Pixelware martes, 3 de diciembre de 2013 11:09
    martes, 3 de diciembre de 2013 9:24

Respuestas

  • ¡He encontrado la solución! Resulta que hay que habilitar/deshabilitar ciertas opciones de ActiveX(opciones de internet/seguridad). De esta manera la llamada a la función "new" que crea el objeto ActiveXObject no produce error. Me imagino que al ser un sitio claramente de confianza no supone un riesgo rebajar el nivel de seguridad. Si directamente se le pone a un nivel bajo de seguridad, el programa va a funcionar, aunque yo creo que es mejor opción de hacer una personalización del nivel de seguridad tocando solo opciones de ActiveX. Todavía no me ha dado tiempo a analizar que opción es la que provoca que ActiveX este inutilizado en este caso. Siento haber creado confusión teniendo la solución en frente mía. Espero que a alguien le sirva de ayuda en un futuro. ¡Un saludo!
    • Marcado como respuesta Pixelware martes, 3 de diciembre de 2013 9:52
    • Editado Pixelware martes, 3 de diciembre de 2013 10:58
    martes, 3 de diciembre de 2013 9:52