[RESUELTO] como detectar archivos abiertos en openoffice

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
jagtoscano
Mensajes: 4
Registrado: Mar Oct 19, 2010 8:13 pm

[RESUELTO] como detectar archivos abiertos en openoffice

Mensaje por jagtoscano »

Hola,

estoy desarrolando una aplicacion desde donde yo deteto archivos abiertos de excel.
en Visual foxpro se hace asi.

loexcel = CREATEOBJECT("Excel.Application")

si se crea el objeto.

for i= 1 to loexcel.Windows.Count
if lcArchivo= loexcel.Windows.Item(i).Caption
messagebox(" el archivo esta abierto")
exit
endif
next

pero con openoffice no funciona este metodo, me devuelve un error.
alguien puede ayudarme a resolver mi duda

gracias
Última edición por jagtoscano el Mié Oct 20, 2010 10:37 pm, editado 1 vez en total.
windows xp, openoffice 3.1.0
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: como detectar archivos abiertos en openoffice

Mensaje por mauricio »

Hola...

Claro, el API de OOo y MO son totalmente diferentes...

Para usar OOo tienes que crear primero una instancia del administrador de servicios a partir de el, tienes todo OOo a tu disposición, claro, debes de conocer el API...
El siguiente ejemplo esta en VB6, adaptalo a VFox y nos cuentas si funciono:

Código: Seleccionar todo

  'Creamos una instancia del administrador de servicios
  Set oSM = CreateObject("com.sun.star.ServiceManager")

  'Creamos una instancia del servicio Desktop
  Set oEscritorio = oSM.createInstance("com.sun.star.frame.Desktop")

       'Accedemos a todos los documentos actualmente abiertos
      oDocumentos = oEscritorio.getComponents()
	For Each oDocumento In oDocumentos
		MsgBox "Documento: " & oDocumento.Title
	Next
Si por alguna razón no te funciona el For-Each, prueba la siguiente alternativa:

Código: Seleccionar todo

	'Accedemos a todos los documentos actualmente abiertos
	oDocumentos = oEscritorio.getComponents()
	'Enumeramos cada uno
	oEnumeraDocumentos = oDocumentos.createEnumeration()
	'hasMoreElements devuelve verdadero (True) mientras haya elementos
	Do While oEnumeraDocumentos.hasMoreElements()
		'Nos desplazamos al siguiente elemento y lo asignamos
		oDocumento = oEnumeraDocumentos.nextElement()
		'Mostramos el tipo de documento
		MsgBox oDocumento.Title
	Loop
Para conocer el API de OOo: http://api.openoffice.org/docs/common/r ... le-ix.html

Si nunca has usado el API de OOo, te recomiendo empezar con mi libro: http://user.services.openoffice.org/es/ ... =50&t=1545

Por favor, si esto responde tu pregunta, edita el primer mensaje de este hilo y agrega al principio del título la etiqueta [RESUELTO], de esta forma conseguiremos un foro más ordenado.

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
jagtoscano
Mensajes: 4
Registrado: Mar Oct 19, 2010 8:13 pm

Re: como detectar archivos abiertos en openoffice

Mensaje por jagtoscano »

Gracias, por tu respuesta, lo probare y les cuento como me fue
windows xp, openoffice 3.1.0
Responder