Seite 1 von 1
Beim Beenden eines Makro alle Instanzen Schliessen
Verfasst: Fr, 07.08.2009 15:40
von keksi1970
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
Re: Beim Beenden eines Makro alle Instanzen Schliessen
Verfasst: Fr, 07.08.2009 21:32
von komma4
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?
Re: Beim Beenden eines Makro alle Instanzen Schliessen
Verfasst: Sa, 08.08.2009 08:53
von keksi1970
muss ich erst testen.
aber sieht so aus, als wäre es genau das, was ich suchte.
Danke
Andreas