Beim Beenden eines Makro alle Instanzen Schliessen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Beim Beenden eines Makro alle Instanzen Schliessen

Re: Beim Beenden eines Makro alle Instanzen Schliessen

von keksi1970 » Sa, 08.08.2009 08:53

muss ich erst testen.

aber sieht so aus, als wäre es genau das, was ich suchte.

Danke
Andreas

Re: Beim Beenden eines Makro alle Instanzen Schliessen

von komma4 » Fr, 07.08.2009 21:32

Gestern im englischen Forum:

Code: Alles auswählen

  
REM http://www.oooforum.org/forum/viewtopic.phtml?t=3712
REM DannyB 2003-11-06
REM oooforum.org 2009-08-06
REM for douganddolores #87297
Sub dismiss_all_and_close_OOo
    oComponents = StarDesktop.getComponents()
     
    ' Show me how many total components are open?
    oComponentWalker = oComponents.createEnumeration()
    Do While oComponentWalker.hasMoreElements()
       oComponent = oComponentWalker.nextElement()
       oComponent.setModified( FALSE )
       oComponent.close( TRUE )
    Loop
   
    StarDesktop.dispose()
End Sub
Der Code schliesst alle OOo-Komponenten ohne sie zu sichern.
Wie Andrew dort anmerkt kann der Code -leicht abgeändert- auch automatisch Änderungen sichern:

Code: Alles auswählen

       
       If hasUnoInterfaces( oComponent , "com.sun.star.frame.XStorable") Then
       	  If oComponent.isModified() Then       	  
       	     oComponent.store()
       	  End If
       End If
       oComponent.dispose() 
Anmerkung:
* neue, ungesicherte Dokumente werden mit einem generierten Namen in einem Unterverzeichnis im Extras>Optionen...>Temporäre Dateien-Verzeichnis gespeichert; bspw.:/tmp/svln9.tmp/svlnh.tmp
* ich habe den Code nicht getestet mit *.odb oder irgendwelchen Fremdformaten (*.doc, *.xls. *.csv, *.txt usw.)
* ungetestet sind auch geänderte read-only Dokumente
(aus Andrews Dokument:

Code: Alles auswählen

If (ThisComponent.isModified) Then
    If (ThisComponent.hasLocation AND (Not ThisComponent.isReadOnly)) Then
)

Hilft Dir das weiter?

Beim Beenden eines Makro alle Instanzen Schliessen

von keksi1970 » Fr, 07.08.2009 15:40

Hi,

Ich hab zwar die Suche bemüht, weil ich weiß, das das Thema schon mal behandelt worden ist, aber ich find nix :(

es geht im endeffekt um eine .ODB, auf die ich mit einem Calc-Dialog zugreife.
Da die Testpersonen etwas weiter weg sind, würde ich gerne bei beenden des Dialogs alle OOo instanzen schliessen, damit evtl Fehler während einer geöffneten Verbindung nicht den Zugriff auf die .ODB blockieren.

schön wäre :

Speichere alle geöffneten Office-Dateien
Schliesse alle Office-Dateien
Beende Schnellstarter

LG
Andreas

Nach oben