Seite 1 von 1
wiederherstellungsdatei
Verfasst: Fr 17. Jul 2015, 12:17
von paulderfinne
Hallo liebe Gemeinde,
ich stecke mal wider fest.
Ich habe ein Makro geschrieben, das in einer Vorlagendatei abläuft und am Ende dieses Programms in eine normale Datei abspeichert und ausdruckt und anschließend auch zumacht (siehe unten). Nun passierte es allerdings, dass die Lockdatei (die die mit .~lock.) beginnt nicht gelöscht wurde und so gescah es, dass ich bei neuerlichem Aufruf vo LO in die blöde Frage ob ich denn die Datei wiederherstellen möchte hineinlief. Also, dachte ich, lösche ich die blöde Lock-Datei (im Makro) und gut ist. Aber mitnichten. Die Lcokdatei ist zwar weg, aber die Frage nach der Wiederherstellung kommt trotzdem. Hat jemand eine Idee, wie ich das richtig mache? (Ich nutze LO Version: 4.3.3.2 auf einer debian jessie Maschine)
Code: Alles auswählen
sub foobar
strDatei="foobar.odt"
strDateiUrl=converttourl(strDatei)
' oDoc = ThisComponent
oDoc.storeASUrl(strDateiUrl,dummy())
Dim oSimpleFileAccess
strDatei = ".~lock.foobar.odt#"
strDateiUrl=converttourl(strDatei)
oSimpleFileAccess=createunoservice("com.sun.star.ucb.SimpleFileAccess")
oSimpleFileAccess.kill(strDateiUrl)
oDoc.Print(dummy())
msgbox("Druck abgeschlossen?")
Connection.Close()
ThisComponent.close -1
Stardesktop.Terminate()
End Sub
Re: wiederherstellungsdatei
Verfasst: So 19. Jul 2015, 09:15
von paulderfinne
Es scheint, dass LO4 auf diesem Gebiet etwas Neues gemacht hat. Früher hat das Programm nämlich nicht so reagiert.
Auch habe ich im Netz gelesen, dass man die Funktion der Wiederherstellungsdatei ausschalten kan indem man im Startscript soffice diese Zeilen auskommentiert:
- # file locking now enabled by default
#SAL_ENABLE_FILE_LOCKING=1
#export SAL_ENABLE_FILE_LOCKING
Allerdings bringt das in meinem LO4 nichts.
Hat da jemand eine Ahnung, was da los ist?
Ich denke das hat mit meinem Problem zu tun.
Re: wiederherstellungsdatei
Verfasst: So 19. Jul 2015, 10:36
von karolus
Hallo
Abgesehen davon, das das ganze Procedere etwas fragwürdig anmutet, wäre das folgende einen Versuch wert:
Code: Alles auswählen
SAL_ENABLE_FILE_LOCKING=0
export SAL_ENABLE_FILE_LOCKING
Re: wiederherstellungsdatei
Verfasst: So 19. Jul 2015, 12:25
von paulderfinne
Danke Karolus für deine Antwort. Es stimmt, dass mit der Änderung des Eintrags die Lock-Datei nicht erzeugt wird, allerdings möchte LO nach einem "Absturz" trotzdem die dabei offene Datei wiederherstellen. Ich dachte immer die beiden Dinge hängen zusammen: Gibt es eine Lockdatei, dann versucht LO die Datei wiederherzustellen. Dem ist aber offenbar nicht so.
Vielleicht nochmal mein Problem erläutern. Die oben gezeigten Programmierzeilen beenden zwar LO, wenn ich aber LO neu starte kommt der Dialog mit dem Wiederherstellen der Datei. Zugleich war die Lock-Datei vorhanden. Diese habe ich im Code gelöscht, der Dialog kommt aber trotzdem.
Habe ich mich verständloich ausgedrückt?
Re: wiederherstellungsdatei
Verfasst: So 19. Jul 2015, 14:05
von paulderfinne
Jetzt bin ichs nochmal. Wenn ich diesen Thread hier lese:
https://forum.openoffice.org/en/forum/v ... 01&t=43421
bekomme ich Zweifel, dass es überhaupt geht, den Wiederherstellungsmodus abzuschalten. Das ist ja eigentlich auch gar nicht das, was ich will. Ich möchte nur, dass mein Programmcode LO so beendet, dass eine Wiederherstellung (recovery) nicht mehr nachgefragt wird. Das hatten wir schon in diesem Thread:
http://www.libreoffice-forum.de/viewtop ... 12&t=11379
aber nach der Neuinstallation (wahrscheinlich wurde LO von 3 auf 4 upgedatet) klappt das nicht mehr mit der Zeile:
Stardesktop.Terminate()
Re: wiederherstellungsdatei
Verfasst: So 19. Jul 2015, 21:16
von karolus
Was ich immer noch nicht verstehe: wozu all das - wieso dieses obskure `
StarDesktop.teminate()
Allein von der Kommandozeile kann Libreoffice mit Dutzenden von Argumenten aufgerufen werden
gibt folgende Ausgabe:
Code: Alles auswählen
LibreOffice 4.4.3.2 40m0(Build:2)
Usage: soffice [options] [documents...]
Options:
--minimized keep startup bitmap minimized.
--invisible no startup screen, no default document and no UI.
--norestore suppress restart/restore after fatal errors.
--quickstart starts the quickstart service
--nologo don't show startup screen.
--nolockcheck don't check for remote instances using the installation
--nodefault don't start with an empty document
--headless like invisible but no userinteraction at all.
--help/-h/-? show this message and exit.
--version display the version information.
--writer create new text document.
--calc create new spreadsheet document.
--draw create new drawing.
--impress create new presentation.
--base create new database.
--math create new formula.
--global create new global document.
--web create new HTML document.
-o open documents regardless whether they are templates or not.
-n always open documents as new files (use as template).
--display <display>
Specify X-Display to use in Unix/X11 versions.
-p <documents...>
print the specified documents on the default printer.
--pt <printer> <documents...>
print the specified documents on the specified printer.
--view <documents...>
open the specified documents in viewer-(readonly-)mode.
--show <presentation>
open the specified presentation and start it immediately
--accept=<accept-string>
Specify an UNO connect-string to create an UNO acceptor through which
other programs can connect to access the API
--unaccept=<accept-string>
Close an acceptor that was created with --accept=<accept-string>
Use --unnaccept=all to close all open acceptors
--infilter=<filter>[:filter_options]
Force an input filter type if possible
Eg. --infilter="Calc Office Open XML"
--infilter="Text (encoded):UTF8,LF,,,"
--convert-to output_file_extension[:output_filter_name[:output_filter_options]] [--outdir output_dir] files
Batch convert files.
If --outdir is not specified then current working dir is used as output_dir.
Eg. --convert-to pdf *.doc
--convert-to pdf:writer_pdf_Export --outdir /home/user *.doc
--convert-to "html:XHTML Writer File:UTF8" *.doc
--convert-to "txt:Text (encoded):UTF8" *.doc
--print-to-file [-printer-name printer_name] [--outdir output_dir] files
Batch print files to file.
If --outdir is not specified then current working dir is used as output_dir.
Eg. --print-to-file *.doc
--print-to-file --printer-name nasty_lowres_printer --outdir /home/user *.doc
--cat files
Dump text content of the files to console
Eg. --cat *.odt
--pidfile file
Store soffice.bin pid to file.
-env:<VAR>[=<VALUE>]
Set a bootstrap variable.
Eg. -env:UserInstallation=file:///tmp/test to set a non-default user profile path.
Remaining arguments will be treated as filenames or URLs of documents to open.
mit z.B.
bekomme ich ohne weitere Aktionen einen Ausdruck des Dokumentes auf dem angegebenen Drucker, und Libreofffice beendet sich freiwillig nach dem es den Ausdruck angestossen hat.
Re: wiederherstellungsdatei
Verfasst: Mo 20. Jul 2015, 08:46
von paulderfinne
Danke Karolus für deine Anregungen. An die Möglichkeit von Optionen haber ich gar nicht gedacht. Das:
--norestore
scheint in der Tat für dieses eine Mal die Wiederherstellungsoption auszuschalten, damit kann ich leben
Was ich immer noch nicht verstehe: wozu all das - wieso dieses obskure `StarDesktop.teminate()
Jener "ominöse" Befehl war der einzige, bei dem sich LO rishtig schloss und zum aufrufenden Programm zurückkehrt. Siehe oben erwähnten Thread.
Aber jetzt werde ich erstmal die Option testen. Vielen Dank erstmal.
Re: wiederherstellungsdatei
Verfasst: Mo 20. Jul 2015, 10:01
von karolus
Hallo
Das prinzipielle Problem scheint mir hier:
Basic läuft (kann nur laufen) im Kontext von soffice ( das geht gar nicht anders )
Wenn du schon skriptest ( skripten musst ??? ) - warum nicht auf eine Weise die nicht vom Prozess abhängt den du abschliessen möchtest?