Ejecutar un Batch, pero en la macro

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...

Ejecutar un Batch, pero en la macro

Notapor Longi » Mié Feb 10, 2021 8:49 pm

Buenas!
Tengo una base de datos multiusuario que, para abrir precisa de un archivo ".bat" que hay que personalizar, según sea la base de datos, dónde esté y dónde quieras mantener los datos.
El asunto es que en la corporación en la que estoy han metido un antivirus que no me permite la llamada al .bat, así que pensé que si quedaba la llamada al servidor en la propia macro de arranque quizá obviase ese filtro del antivirus.
Sé que es posible poner en basic el código suficiente para hacer lo mismo que el .bat, pero se me está complicando bastante, así que una ayudita sería de agradecer.
El .bat tiene este código:

Código: Seleccionar todo   Expandir vistaContraer vista
@echo off
REM Place this file and server.STOP.bat in your 'database' subfolder

REM Set hsqldb=2 below when running HSQLDB 2.x, and set the jarpath under :CONTINUE below to reflect the full path to hsqldb.jar

set hsqldb=2

REM Edit javapath= below to reflect the sub-path of your Java.exe file...
REM Edit jarpath= below to reflect the sub-path of your hsqldb.jar file...

set javapath=Java\jre1.8.0_241\bin\Java.exe

REM set jarpath=OpenOffice.org 3\Basis\program\classes\hsqldb.jar
REM set jarpath=LibreOffice 4\program\classes\hsqldb.jar

IF EXIST "%PROGRAMFILES(X86)%" GOTO Win64

:Win32
set javapath=%PROGRAMFILES%\%javapath%
set jarpath=%PROGRAMFILES%\%jarpath%
GOTO CONTINUE

:Win64
set javapath=%PROGRAMFILES(X86)%\%javapath%
set jarpath=%PROGRAMFILES(X86)%\%jarpath%

:CONTINUE
REM Set hsqldb=2 above when running HSQLDB 2.x, and set the jarpath below to reflect the full path to hsqldb.jar
IF %hsqldb%==1 GOTO FINISH

Set jarpath=C:\Users\pablo\Desktop\Registro_Laboratorio_Casa\driver\hsqldb.jar

:FINISH
REM Edit the Base front-end .odb name below as necessary
REM Edit the database name...currently "mydb"...within the server startup string below as necessary
REM remove ';shutdown=true' from the startup string below in multi-user environments to avoid automatic shutdown upon closing all Base sessions
rem "%javapath%" -cp "%jarpath%" org.hsqldb.Server -database.0 file:mydb;hsqldb.default_table_type=cached;shutdown=true

echo "%javapath%" -cp "%jarpath%" org.hsqldb.Server -database.0 file:C:\Users\pablo\Desktop\Registro_Laboratorio_Casa\DATABASE;hsqldb.default_table_type=cached
"%javapath%" -cp "%jarpath%" org.hsqldb.Server -database.0 file:C:\Users\pablo\Desktop\Registro_Laboratorio_Casa\DATABASE\Laboratorio;hsqldb.default_table_type=cached

rem pause
exit


Sé que el código debe ir algo así:

Código: Seleccionar todo   Expandir vistaContraer vista
xShell = createUnoService("com.sun.star.system.SystemShellExecute")
xShell.execute(XXXXXXXXXXXXXXXXXXXXXXXXXXXXX,"",0)


El problema es meter en las XXXXXXXXXXXXXXX el código para que haga lo mismo que el .bat 'independiente'.
La personalización del código para las rutas no sería problema ( o mucho problema), pero lo otro es el problema.

Gracias por leerlo.

Un saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Longi
 
Mensajes: 690
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Ejecutar un Batch, pero en la macro

Notapor Longi » Jue Feb 11, 2021 9:28 pm

Buenas!
Sigo avanzando, pero como un elefante en una cacharrería:
En el código del .bat hay una línea con la orden echo, que hace que después aparezca en la pantalla. Lo que he conseguido hasta ahora creo que no son más que palos de ciego, ya que sí que abro la consola, pero no en cmd ni consigo que aparezca el texto de la línea echo:

Código: Seleccionar todo   Expandir vistaContraer vista
echo "%javapath%" -cp "%jarpath%" org.hsqldb.Server -database.0 file:C:\Users\pablo\Desktop\Registro_Laboratorio_Casa\DATABASE;hsqldb.default_table_type=cached


Alguien sabe cómo conseguirlo con basic?
Gracias!
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Longi
 
Mensajes: 690
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Ejecutar un Batch, pero en la macro

Notapor mriosv » Vie Feb 12, 2021 1:42 pm

¿No te será más sencillo crear el bat desde basic y después ejecutarlo?
Puedes usar "Subir adjunto" en Respuesta rápida - Editor Completo - Pestaña Subir adjunto
Apache OpenOffice 4, LibreOffice 5 (Win10x64)
mriosv
 
Mensajes: 2278
Registrado: Sab Dic 27, 2008 1:12 am
Ubicación: Galiza (España)

Re: Ejecutar un Batch, pero en la macro

Notapor Longi » Vie Feb 12, 2021 3:09 pm

Gracias por la pregunta

Aquí es donde se ve el nivel de la gente, y el mio queda a la altura del barro:
Sé que existen los .bat, pero ni sé cómo se hacen ni cómo se manejan. Mucho menos generarlo en basic ( o qué es lo que quiere decir todo esto ).
Yo quería usar otro modo de abrir el servidor para evitar el antivirus, pero es evidente que no sé por dónde las pego.
Si me puedes echar una mano indicándome alguna cosilla se agradecería, después ya sigo invetigando ( o preguntando ).

Un saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Longi
 
Mensajes: 690
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados