quarta-feira, 31 de agosto de 2011

Open Office como serviço do Windows

Segue solução para incluir o Open Office, BrOffice, StarOffice, como serviço do windows e não correr o risco de sua aplicação parar porque alguém fechou a janela DOS do serviço ou fez logoff do usuário que tinha o serviço rodando, a solução abaixo veio de vários fóruns do Open Office. Testado no window xp, windows 7, window server 2003 e windows server 2008.

Fazer download :

The Microsoft® Windows® Server 2003 Resource Kit Tools:

http://www.microsoft.com/download/en/details.aspx?id=17657

Se estiver utilizando o Open Office no Windows Server 2008, executar o programa no modo de compatibilidade


Copiar os 3 arquivos abaixo para uma pasta onde o serviço será executado, no caso criei “C:\OpenOffice-Server”, segue nome e localização(windows xp)

reg.exe c:\windows\system32
instsvr.exe c:\Arquivos de programs\Widows Resource Kits\Tools
srvany.exe c:\Arquivos de programs\Widows Resource Kits\Tools


Salvar o texto abaixo entre “++++++++” num arquivo .bat(manage.bat).

++++++++++++++++++++++++++++++++++++++++++++++++++++
@ECHO OFF
SET home_p=C:\OpenOffice-Server
SET srvany=%home_p%\srvany.exe
SET sc=sc.exe
SET reg=reg.exe
SET ServiceName=OpenOffice-Server
SET OOexe=C:\Arquivos de programas\BrOffice.org 2.4\program\soffice.exe
SET OOport=8100
CALL :%1
GOTO :EOF
:create
SET OOoptions=-accept="socket,host=localhost,port=%OOport%;urp;BrOffice.ServiceManager"
SET OOoptions=%OOoptions% -norestore -headless -invisible -nofirstwizard

%sc% CREATE %ServiceName% binPath= %srvany%
%sc% CONFIG %ServiceName% start= auto
%sc% CONFIG %ServiceName% obj= LocalSystem
%sc% CONFIG %ServiceName% type= own type= interact
%sc% description %ServiceName% "servico do BROffice para geracao de relatorio – porta 8100"

SET line=ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\%ServiceName%\Parameters
SET line=%line% /v Application /t REG_SZ /d "\"%OOexe%\" %OOoptions%" /f
%reg% %line%

GOTO :EOF
:delete
CALL :stop
sleep 5
%sc% DELETE %ServiceName%
GOTO :EOF
:start
%sc% START %ServiceName%
GOTO :EOF
:status
%sc% QUERY %ServiceName%
netstat -na|findstr -c":%OOport%"
GOTO :EOF
:statusex
%sc% QUERYEX %ServiceName%
netstat -na|findstr -c":%OOport%"
GOTO :EOF
:stop
%sc% STOP %ServiceName%
GOTO :EOF
+++++++++++++++++++++++++++++++++++++++++++++++++++

Alterar o caminho da instalação do Open Office (OOexe=C:\Arquivos de programas\BrOffice.org 2.4\program\soffice.exe)

Atentar para a linha abaixo, pois se for Star Office ou OpenOffice a linha muda:

De: SET OOoptions=-accept="socket,host=localhost,port=%OOport%;urp;BrOffice.ServiceManager"
Para: SET OOoptions=-accept="socket,host=localhost,port=%OOport%;urp;StarOffice.ServiceManager"
Ou Para: SET OOoptions=-accept="socket,host=localhost,port=%OOport%;urp;OpenOffice.ServiceManager"

Você necessita de direitos administrativos para instalar o serviço.

Em algumas situações o arquivo srvany.exe pode não funcionar, nesse caso troque pelo instsrv.exe

Para criar o serviço, na linha do DOS:
Manage create
Para apagar:
Manager delete
Para parar/iniciar o serviço:
Manage stop/start
Verificar funcionamento do serviço pela porta
Manager query

Você pode utilizar o .bat acima para criar outros serviços do windows também.

As informações fornecidas foram obtidas de fóruns do OpenOffice.

Um comentário: