AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hook für openOffice

Ein Thema von Schwedenbitter · begonnen am 25. Mai 2011 · letzter Beitrag vom 31. Mai 2011
Antwort Antwort
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#1

AW: Hook für openOffice

  Alt 25. Mai 2011, 18:11
Danke für Eure Antworten!

... aber OpenOffice erstellt doch beim öffnen einer Datei im Dateisystem eine Lock-Datei. Wäre es nicht eine Möglichkeit, darauf zu "warten", dass diese wieder gelöscht wird - was üblicherweise der Fall ist, wenn das Dokument geschlossen wird.
Die Datei hatte ich bemerkt; wohl mir fehlte die Idee, auch daraus einen Ansatz zu machen. Hört sich gut an und ich werde es mal ausprobieren.
Tut OpenOffice nicht eine API bereitstellen?
Auch das scheint ein Ansatz zu sein. Da muss ich mich mal belesen. Es wäre zu schön, wenn man es damit machen könnte...

Der Programmablauf nur nochmal zur Erklärung:
Delphi-Quellcode:
1. Benutzer möchte Datei laden.
2. Server -> Client (hinter lahmem VPN!) lade Datei!
3. Client = kopiert Datei ins Temp-Verzeichnis
4. Client = lässt OOO-Datei öffnen
5. Client = wartet, bis Datei wieder geschlossen wurde //<- hier habe ich die meisten Probleme
6. Client = kopiert/verschiebt Datei wieder zurück auf den Server (hinter dem VPN)
Das Problem sind die abartig langen Wartezeiten, wenn OOO eine Datei übers VPN laden muss. Auch wenn die nur 20 KB groß ist und das VPN einen Durchsatz in beide Richtungen von 100 KB/S (bereits netto) schaffte mit Ping-Zeiten um die 25 ms, dauert das Laden teilweise bis zu 1 min Und dann bricht manchmal auch die Verbindung ab -> defekte lock-Datei, nicht aktuelle Datei ...
Deshalb der ganze Aufwand, um den Flaschenhals VPN zu entschärfen!

Ich hatte es bereits über Prozesse, Prozess-ID, testen ob die Datei exklusiv zu öffnen geht etc. probiert. Aber so wirklich sicher klappte das nie.
Das mit der Lock-Datei liegt sowas von auf der Hand, dass mir das nie aufgefallen ist (Wald vor lauter Bäumen und so).

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Hook für openOffice

  Alt 25. Mai 2011, 22:39
Nun:
Mal ein Einwurf.
Wie wäre es wenn du einfach wartest bis OpenOffice nicht mehr als Prozess vorhanden ist?
Unter Linux nutze ich folgendes Script dafür:
Code:
#!/bin/sh
SERVICE='soffice.bin'
#start service:
soffice $@
#wait for close:
while ps ax | grep -v grep | grep $SERVICE > /dev/null
do
  sleep 1
done
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: Hook für openOffice

  Alt 25. Mai 2011, 23:50
Nun:
Mal ein Einwurf.
Wie wäre es wenn du einfach wartest bis OpenOffice nicht mehr als Prozess vorhanden ist?
So einfach ist es dann leider nicht.
Ich hatte auch das schon probiert. Das Problem ist aber, dass die Benutzer mehrere Dateien öffnen können sollen/müssen. Zumindest unter Windows ist es so, dass im Schnitt für jede Datei je ein Prozess für soffice.exe und soffice.bin existieren. Mag sein, dass ich mich irre, aber es ist ja auch schon spät. Ich nutze auch Linux, ob dies dort auch so ist mit den Prozessen, weiß ich aber nicht.
Wie soll ich wissen, welcher Prozess meine Datei(en) geöffnet hält?

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat
sHoXx
(Gast)

n/a Beiträge
 
#4

AW: Hook für openOffice

  Alt 26. Mai 2011, 15:49
anhand der PID, ich hab letztens ne funktion gemacht, die dir den prozess startet und die pid zurückgibt, und ne funktion die angibt, ob der prozess noch läuft oder beendet wurde. wenn du willst kann ich dir die zukommen lassen, aber erst nächste woche da ich gleich feierabend mach und morgen schule hab
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: Hook für openOffice

  Alt 26. Mai 2011, 18:52
anhand der PID, ich hab letztens ne funktion gemacht, die dir den prozess startet und die pid zurückgibt, und ne funktion die angibt, ob der prozess noch läuft oder beendet wurde. wenn du willst kann ich dir die zukommen lassen, aber erst nächste woche da ich gleich feierabend mach und morgen schule hab
Das wäre sehr nett!
Ich meine aber, dass ich das schon einmal probiert hatte. Soweit ich mich erinnern kann, gabe es aber das Problem, dass openOffice zwar mehrere Dateien geöffnet hatte, es aber letztlich nur eine PID (Heißt das unter Windows auch so?) gab.
Alex Winzer
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Hook für openOffice

  Alt 26. Mai 2011, 20:03
Für eine solche Funktion würde ich mich auch freuen da meine Variante nicht ganz das Optimale ist (wegen dem Schließen)
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Gernot Huber

Registriert seit: 26. Mai 2011
Ort: Dülmen
13 Beiträge
 
Delphi 2010 Professional
 
#7

AW: Hook für openOffice

  Alt 27. Mai 2011, 13:44
Du kannst das ganze über einen EventListener lösen.

Ich habe mal eine kleine Demoanwendung geschrieben und angehängt.
Angehängte Dateien
Dateityp: zip OOEvents.zip (6,6 KB, 12x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz