Problemas para reemplazar Office con LibreOffice

2

Tengo un programa propietario que requiere que los usuarios ocasionalmente realicen modificaciones menores en un documento de Word. Quiero reemplazar Word con LibreOffice Writer. Tengo Writer configurado para abrir archivos .doc y .docx sin problemas. Sin embargo, cuando los usuarios generan y abren estos archivos a través del software propietario, reciben un error acerca de no poder encontrar la palabra.

Sospecho que el programa está codificado para buscar winword.exe. ¿Hay alguna manera de mover y cambiar el nombre del escritor de LibreOffice a winword.exe? ¿Hay algún tipo de archivo de redireccionamiento que pueda hacer? No estoy seguro de cómo proceder desde aquí.

Jason
fuente

Respuestas:

3

Dado que parece tener una relación de trabajo con el proveedor de software propietario, quizás pueda preguntarles cómo están llamando a winword.exe para abrir el archivo. Si simplemente hacen una llamada al sistema para iniciar winword.exe y le pasan el nombre del archivo para abrir, entonces todas o la mayoría de las soluciones que enumero a continuación deberían funcionar. Voy a enumerar los más fáciles primero. Si están usando COM o DDE, no es imposible interceptar eso, pero requerirá mucho más trabajo.

Si indican que están haciendo una llamada al sistema para iniciar winword.exe (o si no se lo dicen, asuma que puede funcionar y pruébelo ...):

  1. Vaya a la carpeta donde está instalado LibreOffice Writer. Estoy usando OpenOffice en lugar de LibreOffice, pero son muy similares, por lo que es posible que tengas que investigar un poco.
  2. Encuentra el archivo .exe "Writer". Para mí (OpenOffice) es:
    D:\Program Files\OpenOffice.org-3\program\swriter.exe
  3. Haga una copia del archivo .exe "Writer" que encuentre y cámbiele el nombre a "winword.exe".
  4. Asegúrese de que permanezca en la misma carpeta que el archivo .exe "Writer" existente.
  5. Asegúrese de que la carpeta donde se encuentra esto se nombra en la variable de entorno "Ruta".

Si tiene algún problema o pregunta con este proceso, solo proporcione algunos detalles en un comentario.


Si lo anterior no funciona, puede intentar "Redirigir" la apertura de Winword. Dos posibilidades para hacer esto:

Método 1:

  1. Cree un enlace a LibreOffice Writer. Nombre el enlace winword.lnk o winword.exe.lnk. Esto puede depender de cómo el programa propietario llama a Winword.
  2. Coloque el archivo de enlace en una carpeta denominada en la variable de entorno "Ruta".

Dependiendo de la versión de Windows que esté utilizando, puede haber más de un tipo de enlace que se puede crear, y algunos pueden funcionar en su caso y otros no.

Método 2:

  1. Usando un lenguaje de programación que pueda compilarse en un archivo ".exe" (como C o Visual Basic), cree un pequeño programa "envoltorio".
  2. El programa contenedor simplemente acepta los argumentos de la línea de comandos y llama a LibreOffice Writer, pasando los argumentos.
  3. Después de compilar el contenedor, cambie el nombre del archivo .exe creado a winword.exe y colóquelo en una carpeta denominada en la variable de entorno "Ruta".

Si no encuentra ninguno de estos trabajos, o si le dicen que usan DDE o COM para invocar Winword, entonces tanto Visual Basic como C pueden programarse para responder a mensajes / solicitudes DDE / COM, aunque esto no es una tarea trivial.


Editar:

Puede ver la "Path"variable de esta manera:

  1. Abra un símbolo del sistema haciendo clic en el botón Inicio de Windows (Orbe de inicio), luego haga clic en el "Command Prompt"acceso directo. Si no ve un "Command Prompt"acceso directo en el menú de inicio, haga clic en el cuadro "Buscar" en la parte inferior del menú de inicio y escriba:
    cmd.exe Enter
  2. En la ventana del símbolo del sistema, escriba:

C:>echo %Path%
C:\Windows\System32\;C:\Windows\;C:\Windows\System32\Wbem

C:>

Esto mostrará una cadena que es una lista de carpetas separadas por ";"(punto y coma). La cadena que se muestra en su computadora será diferente.

Si no puede encontrar su carpeta apropiada en la lista de carpetas contenidas en la Pathvariable, puede agregar nombres de carpeta a Path:

  1. Haga clic en el botón Inicio (orbe)
  2. En el menú de inicio, haga clic Computerpara abrir "My Computer", luego haga clic "System Properties"en el menú contextual debajo de la barra de menú. O, en el menú de inicio, haga clic derecho Computery seleccione"Properties"
  3. A la izquierda de la "My Computer"ventana, haga clic en"Advanced system settings"
  4. Haz clic en la "Advanced"pestaña.
  5. Haga clic en el Environment Variablesbotón

    Desde esta pequeña ventana que se abre, puede agregar / editar / eliminar variables de entorno.

    Hay dos tipos de variables de entorno. System variablesestán disponibles para todos los usuarios en la computadora. User variablesse puede configurar para que sea diferente para cada usuario.

    La mitad superior de la ventana es para administrar User variablesy la inferior es para administrar System variables. Para administrar variables solo para el usuario conectado, trabaje en la User variablessección, de lo contrario trabaje en la System variablessección.

    Si una variable tiene un valor para las secciones System variablesy User variables, entonces el valor en la User variablessección tendrá prioridad.

    Los nombres de las variables no distinguen entre mayúsculas y minúsculas, por lo que una variable denominada "Path"podría escribirse "path"o "PATH". De cualquier manera, es la misma variable.

    Suponga que desea editar el "Path"en la System variablessección (que sería el caso habitual).

  1. En la System variablessección, busque la Pathvariable y haga clic en ella. Luego haz clic en el Edit...botón.
  2. Si no encuentra la Pathvariable (seguramente lo hará), puede hacer clic en el New...botón para agregar una nueva variable y darle un nombre Path.
  3. En la Edit System Variableventana, haga clic en el campo "Valor variable" (cuadro de texto).

    En aras de la seguridad, sería una buena idea hacer una copia del texto (valor) que está actualmente en el cuadro de texto y guardarlo en un archivo de texto en su escritorio.

  4. Agregue una carpeta a la Pathvariable actual moviéndose al texto final en el cuadro de texto, luego escriba a ;(punto y coma), escriba la ruta completa de la carpeta que desea agregar y haga clic en el OKbotón.

Entonces, en su caso, es posible que vea que el valor de la Pathvariable comienza a parecerse a esto: C:\Windows\System32\;C:\Windows\;C:\Windows\System32\Wbem

y después de haber agregado la carpeta a la Pathvariable, podría verse así: C:\Windows\System32\;C:\Windows\;C:\Windows\System32\Wbem;D:\Program Files\LibreOffice\program\

Ahora puede hacer clic en el OKbotón para cerrar la System Propertiesventana y puede cerrar la My Computerventana.

Las variables de entorno generalmente solo son leídas por los programas cuando comienzan. Por lo tanto, cualquier programa que se inicie después de cambiar el valor de una variable de entorno, o agregar una nueva variable de entorno, o eliminar una variable de entorno, generalmente verá el entorno que contiene los nuevos valores (modificados).

Para los programas que ya se están ejecutando, es posible que deba cerrarlos y reiniciarlos, o reiniciar la computadora antes de que vean los nuevos valores (modificados).

Kevin Fegan
fuente
Kevin, gracias por la respuesta detallada. Tengo problemas para seguir este paso "Asegúrese de que la carpeta donde se encuentra esto esté nombrada en la variable de entorno" ruta ". ¿Qué implica esto exactamente?
Jason
@Jason: dado que proporcioné algunas soluciones, no sé con qué solución está teniendo problemas. Agregué a mi respuesta que describe cómo ver el valor actual de la Pathvariable y cómo editarlo si es necesario. En caso de que todavía tenga problemas, dígame qué solución está intentando y en qué carpeta está su archivo (LibreOffice) swriter.exe, qué contiene su Pathvariable y qué problemas tiene. Trataré de guiarte a través de eso.
Kevin Fegan
0

Probablemente no. No puede simplemente cambiar el nombre de un archivo para que se ajuste porque generalmente se llamará al Programa y se le pasarán Parámetros a él / sus funciones.

Pregunte a los desarrolladores de la Aplicación propietaria si considerarían extenderse más allá de Word, teniendo en cuenta que este es un trabajo no remunerado para ellos, por lo que será un deseo del cliente que pueden conceder algún tiempo en el futuro, pero ciertamente no ahora.

¿Por qué no abrir los documentos manualmente para editar con Libre?

M.Bennett
fuente
Los desarrolladores dicen que Word es su procesador de elección y no ampliarán el soporte a otros programas. El usuario abre el documento desde el software y desafortunadamente no localmente
Jason
0

El software puede no estar buscando WinWord.exe, puede estar intentando comunicarse con él usando Automatización OLE / COM , y cuando no puede iniciar el OLE, informa que no puede encontrarlo.

Más información de MSDN: Automatización

LibreOffice's Writer puede actuar como un servidor COM para proporcionar una automatización similar, pero el software que está tratando de automatizar Word / Writer necesitaría ser reprogramado para usarlo, incluidos sus diferentes espacios de nombres, ClassId, métodos, etc.

Si sospecha que está tratando de ejecutar WinWord.exe específicamente, quizás inicie una copia de Process Monitor para confirmar o rechazarlo con una pequeña prueba.

Ƭᴇcʜιᴇ007
fuente