BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das OpenOffice Forum zu erhalten!

DANKE >><< DANKE

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des OpenOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als OO-SUPPORTER gekennzeichnet. 🤗

Automatisch Speichern beim Schließen

Alles zur Programmierung im OpenOffice.org
Antworten
sugar76
Beiträge: 2
Registriert: Di 16. Okt 2018, 22:59

Automatisch Speichern beim Schließen

Beitrag von sugar76 » Di 16. Okt 2018, 23:13

Hallo,

ich probiere gerade Möglichkeiten aus, OpenOffice via UNO anzusprechen, ich mache das mit C#. Starten von OpenOffice und Einfügen von Text habe ich ganz gut hinbekommen.

Jetzt möchte ich, dass OpenOffice automatisch das aktuell geöffnete Dokument speichert, wenn der Anwender das Dokument schließt oder OpenOffce beendet. Ziel ist, dass beim Schließen der Dialog "Das Dokument ... wurde geändert. Sollen die Änderungen gespeichert werden?" nicht erscheint, sondern immer automatisch gespeichert wird.

Ich habe versucht, mittels XCloseListener das Event queryClosing abzufangen und dann das Dokument zu speichern, der Dialog erscheint aber trotzdem immer.

Über ein Makro ging das sicher auch, aber das gewünschte Verhalten soll bei jedem beliebigen Dokument implementiert werden. Oder kann man ein Makro per UNO für jedes geöffnete Dokument einbetten?

Hat jemand eine Idee, wie ich das machen kann?

Gruß

F3K Total
Beiträge: 1007
Registriert: Mo 1. Aug 2011, 00:03

Re: Automatisch Speichern beim Schließen

Beitrag von F3K Total » Sa 10. Nov 2018, 13:29

Hi,
Makros kannst du auch auf dem jeweiligen Client im Benutzerverzeichnis speichern.
Wennn du das, hier jetzt Basic, Makro Register_Listener, nach dem Öffnen eines existierenden Dokuments über eben dieses laufen lässt, wirds beim Schliessen unter dem ja bereits vorhandenen Pfad gespeichert.

Code: Alles auswählen

Sub Register_Listener
   oListener = createunoListener("EventListener_", "com.sun.star.document.XEventListener" )
   thisComponent.addEventListener(oListener)
end sub

sub EventListener_notifyEvent(event)
        if ThisComponent.isModified = true then
            ThisComponent.store
            ThisComponent.modified = false
        endif
    endif
end sub

sub EventListener_disposing
end sub
EDIT: Vielleicht reicht dir auch, die Dokumenteigenschaft .modified = false zu setzen, um den Dialog zu unterbinden?
HTH Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO

sugar76
Beiträge: 2
Registriert: Di 16. Okt 2018, 22:59

Re: Automatisch Speichern beim Schließen

Beitrag von sugar76 » Sa 10. Nov 2018, 14:43

Super, das hilft mir weiter - danke.

F3K Total
Beiträge: 1007
Registriert: Mo 1. Aug 2011, 00:03

Re: Automatisch Speichern beim Schließen

Beitrag von F3K Total » Sa 10. Nov 2018, 14:55

ups,
ich hatte die wichtigste Zeile im Makro,"OnPrepareViewClosing", gelöscht, so muss es:

Code: Alles auswählen

Sub Register_Listener
   oListener = createunoListener("EventListener_", "com.sun.star.document.XEventListener" )
   thisComponent.addEventListener(oListener)
end sub

sub EventListener_notifyEvent(event)
    if event.EventName = "OnPrepareViewClosing" then
        if ThisComponent.isModified = true then
            ThisComponent.store
            ThisComponent.modified = false
        endif
    endif
end sub

sub EventListener_disposing
end sub
Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO

Antworten