x64 visual tools studio sirve que para paquete office microsoft idioma for esn descargar visual-studio-2010 ms-word c#-4.0 ms-office

visual studio 2010 - visual - Crear instancia de palabra exclusiva



visual studio tools for office 2016 download (2)

Estoy creando una instancia de palabra (14) con interoperabilidad de la aplicación de formas de seguridad # .net4 para trabajar con un documento. Si algún documento de Word se abre más allá de mi aplicación, se usará la misma instancia de palabra y esto perturbará mi aplicación.

Pregunta simple : ¿Hay alguna forma de configurar la instancia de mi palabra exclusiva para mi aplicación?

Gracias por adelantado.

Btw: Encontré algunas cosas con exclusivo / word / office / isolated / block / instance pero ninguna respuesta de todos modos.


No, no hay forma de que bloquee una instancia de Word solo para usted.

Pero, según su comentario, es fácil evitar el problema: no use ActiveDocument . Puede moverse usando ActiveDocument llamando al documento algo específico y luego usando esa variable (ya sea que esté abriendo un documento existente o creando uno nuevo).

Por ejemplo:

Sub NewDoc() Dim d As Document Set d = Documents.Add(Visible:=False) End Sub Sub ExistingDoc() Dim d As Document Set d = Documents.Open(FileName:="C:/myexisting.doc") End Sub

En los dos casos anteriores, simplemente usaría d en lugar de donde solía usar ActiveDocument .


Hay una especie de solución, pero no es bonita. El problema principal es que Word se registra en el ROT (Running Object Table) y otras aplicaciones pueden acceder fácilmente a la instancia de Word registrada en el ROT (eso es lo que hace la función GetObject de VB, por ejemplo).

Entonces, en tu aplicación, básicamente tienes que hacer 2 cosas

  1. Intente GetObject (es decir, consulte el ROT para una instancia en ejecución)
  2. Si obtienes uno, sabes que TIENES que crear una nueva instancia de Word para usar ( CreateObject en VB, el proceso es diferente en otros idiomas).
  3. Si NO obtiene uno, debe crear 2 nuevas instancias de Word. El primero se registrará automáticamente en el ROT, el segundo no. Usa la segunda instancia y bastante la primera instancia.

Aunque finalice esa primera instancia, no se registrará "retroactivamente" en el ROT, y otras aplicaciones generalmente no objetarán una referencia a su uso, sino que crearán automáticamente una nueva instancia, que, como ninguna otra instancia ya está registrado en el ROT, luego se registrará.

Dicho esto, todavía es posible que otras aplicaciones lleguen a tu instancia de Word, por lo que esta técnica no es a prueba de balas. ¿Cómo? Porque Word TAMBIÉN registra cada DOCUMENTO cargado en el ROT. Pero esa es una característica que rara vez se usa.