Ich komme da nicht weiter:
Mein "Rechentrainer" hat zwischenzeitlich ziemlich viele Optionen und ich möchte ihn, je nach Nutzung etwas verschlanken.
Die verschiedenen Rechentrainer, z.B. die Testversion oder das Rechenduell werden aus der Vorlagendatei Rechentrainer.ots erstellt.
Ich hab etwas gesucht und zusätzlich zu Thomas' Code ein Seite von Andrew Pitonyak mit den entsprechenden ausführlicheBeschreibungen gefunden:
https://flylib.com/books/en/4.290.1.156/1/
Der Code:
dim NamenArray()
NamenArray=Array("NeuerRT", "Lehrer", "Test", "Kursdateien", "Duell")
NamenArray=GlobalScope.ThisComponent.BasicLibraries.getByName("Rechentrainer").getElementNames()
for n=0 to 4
if GlobalScope.ThisComponent.BasicLibraries.getByName("Rechentrainer").hasbyName(NamenArray(n)) then
GlobalScope.ThisComponent.BasicLibraries.getByName("Rechentrainer").removebyName(NamenArray(n))
end if
next
funktioniert soweit. Die Bibliothek "Rechentrainer hat allerdings ein Passwort. Der Code funktioniert sogar nach einem Schließen und Wiederöffnen der Datei, wobei, wie ich vermute, der Passwortschutz wiederhergestellt wird.
Erstelle ich allerdings eine Vorlagendatei und führe beim Start den Code aus, erfolgt eine Fehlermeldung, die Datei stürzt ab und nach dem Öffnen ist die gesamte Bibliothek weg.
Also habe ich gedacht, probiere ich es mit der Aufhebung des Passwortschutzes, wie beschrieben:
print GlobalScope.ThisComponent.BasicLibraries.isLibraryPasswordProtected("Rechentrainer")
GlobalScope.ThisComponent.BasicLibraries.verifyLibraryPassword("Rechentrainer","*****")
print GlobalScope.ThisComponent.BasicLibraries.isLibraryPasswordVerified("Rechentrainer")
Zunächst erhalte ich die Meldung "true" - die Bibliothek hat also ein Schutz. Dann öffnet sich aber der Makroeditor und zeigt einen Laufzeitfehler in der zweiten Zeile "unbekannt. Interner Fehler $(arg1)". Da der Makroeditor angezeigt wird, nehme ich an, dass also der Passwortschutz aufgehoben ist. Die dritte Zeile wird also nicht mehr ausgeführt. Was mache ich falsch? hat jemand eine Idee?
Pit