Office con c#

09/02/2005 - 11:18 por Ricardo | Informe spam
Hola a todos.

Estoy cambiando una aplicación de VB6 a C# y me he encontrado con el famoso
problema de la automatización.
En parte ya lo he solucionado pero todavia e quedan flecos.

Uno de ellos es saber que versión de Word utiliza el cliente para abrir
documentos .DOC.
Otro es la localización de las plantillas de inicio en esa versión de Word.

He estado mirando el registro en la clave HKEY_CLASSES_ROOT\.doc pero he
visto que la clave Default no coincide con la versión de Word que estoy
utilizando para la apertura de documentos.

La clave de acceso a la localización de las plantillas de inicio tampoco
esta muy clara dependiendo de la versión de Word.
En algunos casos es la ruta de instalación de Office\STARTUP y otras veces
se encuentra una clave en el registro
HKEY_CURRENT_USER\Software\Microsoft\Office\"version
¿?"\Word\Options\STARTUP (esta clave no siempre existe)

Preguntas similare

Leer las respuestas

#1 Rodrigo Corral [MVP]
09/02/2005 - 12:47 | Informe spam
Creo recordar de memoria...

Word._Application word = new Word.Application();

Console.WriteLine(word.Version);




Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#2 Octavio Hernandez
09/02/2005 - 20:24 | Informe spam
Ricardo,

¿Cómo estás programando la aplicación? No estoy 100% seguro, pero creo que
si en tu aplicación agregas una referencia a la librería 'Microsoft Word
Object Library' de la versión concreta de Office que tengas en tu máquina,
esa aplicación cuando la despliegues funcionará únicamente en los clientes
que tengan esa misma versión de Office instalada... Así que creo que
deberías usar un enlace dinámico a la librería de Word que esté disponible,
¿no?

Cuando tengas un objeto ya instanciado, para conocer la versión es
efectivamente como dice Rodrigo, usando la propiedad Version.

Slds - Octavio

"Ricardo" escribió en el mensaje
news:
Hola a todos.

Estoy cambiando una aplicación de VB6 a C# y me he encontrado con el
famoso problema de la automatización.
En parte ya lo he solucionado pero todavia e quedan flecos.

Uno de ellos es saber que versión de Word utiliza el cliente para abrir
documentos .DOC.
Otro es la localización de las plantillas de inicio en esa versión de
Word.

He estado mirando el registro en la clave HKEY_CLASSES_ROOT\.doc pero he
visto que la clave Default no coincide con la versión de Word que estoy
utilizando para la apertura de documentos.

La clave de acceso a la localización de las plantillas de inicio tampoco
esta muy clara dependiendo de la versión de Word.
En algunos casos es la ruta de instalación de Office\STARTUP y otras veces
se encuentra una clave en el registro
HKEY_CURRENT_USER\Software\Microsoft\Office\"version
¿?"\Word\Options\STARTUP (esta clave no siempre existe)






Respuesta Responder a este mensaje
#3 Anonimo
09/02/2005 - 21:28 | Informe spam
El tema a mi también me interesa, y si es como dice
Octavio, me pregunto cómo se puede compilar el proyecto ?.

Yo supongo esto a primeras: téndrá que haber una
referencia alguna librería, para que al compilar se
reconozca los tipos del objeto Word y demás objetos
(juntoscon sus propiedades) que contenga la librería.

Si fuera así, habría que saber para las versiones
sucesivas de Word, los nuevos objetos y propiedades
añadidas.

Pero luego pienso que no va a tener sentido. Habrá que
acceder por reflexión a los tipos de la librería de Word
de la versión X (siendo X la versión que esté instalada en
el equipo cliente, si la hubiere).

Después de todo, esto me pregunto cuál será la mejor forma
de hacer esa automatización y que funcione para todas (o
casi todas) las versiones de Word. (Lo mismo supongo sería
para el caso de Excel, Outlook, Access...no sé).

En fin, no he aportado mucha, aunque sí muchas más
confusión y dudas.





¿Cómo estás programando la aplicación? No estoy 100%


seguro, pero creo que
si en tu aplicación agregas una referencia a la


librería 'Microsoft Word
Object Library' de la versión concreta de Office que


tengas en tu máquina,
esa aplicación cuando la despliegues funcionará


únicamente en los clientes
que tengan esa misma versión de Office instalada... Así


que creo que
deberías usar un enlace dinámico a la librería de Word


que esté disponible,
¿no?

Cuando tengas un objeto ya instanciado, para conocer la


versión es
efectivamente como dice Rodrigo, usando la propiedad


Version.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida