Makros schützen
Moderator: Moderatoren
-
- Beiträge: 3
- Registriert: Mi, 13.12.2006 08:16
Makros schützen
Hallo !!!
Ich möchte eine Calc-Tabelle (OOo 2.0.2) mit Makros in einem Netzwerk bereit stellen. Da es sich um einen sehr umfangreichen Makro-Code handelt und es immer wieder Probleme beim Zugriff durch mehrere Personen gibt (gab) möchte ich den Makro-Code schützen!
Wie funktioniert das?
Meine Idee den Code über die Bibliotheken und deren Kennwort-Schalter zu schützen ist nicht umzusetzen (-> Schalter steht nicht zur Verfügung)!
Kann mir jemand helfen?
Gruß
OOoCrasher
Ich möchte eine Calc-Tabelle (OOo 2.0.2) mit Makros in einem Netzwerk bereit stellen. Da es sich um einen sehr umfangreichen Makro-Code handelt und es immer wieder Probleme beim Zugriff durch mehrere Personen gibt (gab) möchte ich den Makro-Code schützen!
Wie funktioniert das?
Meine Idee den Code über die Bibliotheken und deren Kennwort-Schalter zu schützen ist nicht umzusetzen (-> Schalter steht nicht zur Verfügung)!
Kann mir jemand helfen?
Gruß
OOoCrasher
Hey OOoCracher,
die einzige Möglichkeit, einen Code vor Zugriff und Ansicht zu schützen, ist, die Bibliothek zu verschlüsseln.
Wenn dir diese Möglichkeit - aus welchen Grunden auch immer - nicht zur Verfügung steht, dann gibt es keine andere Varainte. Der Code schliesslich in xml-Dateien gesoeichert und ist somit mit jedem Texteditor aufruf- und änderbar. Hier hilft nur die Verschlüsselung.
Und das geht über die Bibliotheken.
Viele Grüße
Thomas
die einzige Möglichkeit, einen Code vor Zugriff und Ansicht zu schützen, ist, die Bibliothek zu verschlüsseln.
Wenn dir diese Möglichkeit - aus welchen Grunden auch immer - nicht zur Verfügung steht, dann gibt es keine andere Varainte. Der Code schliesslich in xml-Dateien gesoeichert und ist somit mit jedem Texteditor aufruf- und änderbar. Hier hilft nur die Verschlüsselung.
Und das geht über die Bibliotheken.
Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Frage ist was Du genau erreichen willst, entweder die Bibliothek nur vor Veränderungen schützen, jedoch für jederman sichtbar lassen oder die Bibliothek wirklich mit Passwort schützen und verschlüsseln.Meine Idee den Code über die Bibliotheken und deren Kennwort-Schalter zu schützen ist nicht umzusetzen (-> Schalter steht nicht zur Verfügung)!
Kann mir jemand helfen?
Das Ganze hängt sehr wahrscheinlich damit zusammen das Deine Bibliotheken zentral im Unterordner share/basic des Installationsverzeichnisses liegen. Schreibschutz erreichst Du indem Du in der Datei script.xlb der Bibliothek den Eintrag für Schreibschutz setzt, verschlüsseln würde ich (mangels besserer Idee) indem Du die betreffende Bibliothek zunächst normal in das Verzeichnis basic eines Benutzerverzeichnisses kopierst dann verschlüsselst und dann wieder im zentralen Verzeichnis installierst.
Gruß
Stephan
-
- Beiträge: 3
- Registriert: Mi, 13.12.2006 08:16
Hallo Stephan !!!Schreibschutz erreichst Du indem Du in der Datei script.xlb der Bibliothek den Eintrag für Schreibschutz setzt, verschlüsseln würde ich (mangels besserer Idee) indem Du die betreffende Bibliothek zunächst normal in das Verzeichnis basic eines Benutzerverzeichnisses kopierst dann verschlüsselst und dann wieder im zentralen Verzeichnis installierst.
Deine Erläuterung zu den Bibliotheken macht mich doch neugierig! Vielleicht sollte ich aber noch erwähnen, dass ich noch nicht lange mit OpenOffice arbeite und mir deshalb noch nicht alle Dinge diesbezüglich geläufig sind.
Ich möchte also vermeiden, das meine Mitstreiter den Makro-Code einsehen (und verändern) können (weil hier auch Passwörter hinterlegt sind).
Jetzt habe ich mir mal deine Datei "script.xlb" (welche auch öfters in dem besagten Ordner vorkommt) angesehen und kann diese allerdings noch nicht so richtig einschätzen.
Wie setze ich genau den Schutz innerhalb dieser Datei (und in welcher der vorhandenen)?
Gruß
OOoCrasher
Beispiel:Wie setze ich genau den Schutz innerhalb dieser Datei (und in welcher der vorhandenen)?
eine der mitOpenOffice.org mitgelieferten Bibliotheken ist die namens "Depot". Diese ist üblicherweise in:
<installationsverzeichnis>/share/basic
im Ordner der Bibliothek "Depot":
<installationsverzeichnis>/share/basic/Depot
ist die entsprechende Datei script.xlb, also:
<installationsverzeichnis>/share/basic/Depot/script.xlb
Der Inhalt der Datei ist:
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Depot" library:readonly="true" library:passwordprotected="false">
<library:element library:name="Depot"/>
<library:element library:name="CommonLang"/>
<library:element library:name="Currency"/>
<library:element library:name="Internet"/>
<library:element library:name="Lang_de"/>
<library:element library:name="tools"/>
<library:element library:name="Lang_en"/>
<library:element library:name="Lang_fr"/>
<library:element library:name="Lang_it"/>
<library:element library:name="Lang_es"/>
<library:element library:name="Lang_sv"/>
<library:element library:name="Lang_zh"/>
<library:element library:name="Lang_tw"/>
<library:element library:name="Lang_ko"/>
<library:element library:name="Lang_ja"/>
</library:library>
Code: Alles auswählen
library:readonly="true"
Code: Alles auswählen
library:readonly="false"
Da ich schrieb:
was ja zweifelfrei geht, habe ich jetzt mal nachgeschaut wie das per code geht. Wenn Du wie oben aufgeführt den Schreibschutz entfernt hast, kannst Du mittels:verschlüsseln würde ich (mangels besserer Idee) indem Du die betreffende Bibliothek zunächst normal in das Verzeichnis basic eines Benutzerverzeichnisses kopierst dann verschlüsselst und dann wieder im zentralen Verzeichnis
Code: Alles auswählen
Sub passwort()
Dim oLib
oLib = GlobalScope.BasicLibraries
oLib.changeLibraryPassword("Depot","altesPasswort","neuesPasswort")
End Sub
Ich habe das Ganze getestet und es fuktioniert ohne Probleme.
Hinweis:
ist die Bibliothek noch nicht passwortgeschützt ist das alte Passwort ein Leerstring, also:
Code: Alles auswählen
.changeLibraryPassword("Depot","","neuesPasswort")
Gruß
Stephan
Vielleicht noch ein Hinweis zum Schutz von Bibliotheken:
Die Bibliothek "Standard" kann nicht geschützt werden, daher steht auch hier der Button für den Kennwortschutz nicht zur Verfügung.
Möchte man seinen Code schützen, muss man ihn in eine neue Bibliothek transferieren, dann funktioniert's.
Die Bibliothek "Standard" kann nicht geschützt werden, daher steht auch hier der Button für den Kennwortschutz nicht zur Verfügung.
Möchte man seinen Code schützen, muss man ihn in eine neue Bibliothek transferieren, dann funktioniert's.
mit freundlichen Grüßen
Rainer
Rainer
Hallo Rainer,
Ja, das der Button nicht zur Verfügung steht ist richtig, nur darum geht doch der ganze Thread, nämlich das diese Schaltfläche auch für alle Bibliotheken in:
<Installationsverzeichnis>/share/Basic
nicht zur Verfügung steht.
Ich hatte gerade deshalb den Code gepostet, welcher auch für die Bibliothek "Standard" funktioniert. Mit Folgendem kannst Du auch die Bibliothek Standard mit Passwortschutz versehen:
Gruß
Stephan
Die Bibliothek "Standard" kann nicht geschützt werden, daher steht auch hier der Button für den Kennwortschutz nicht zur Verfügung.
Ja, das der Button nicht zur Verfügung steht ist richtig, nur darum geht doch der ganze Thread, nämlich das diese Schaltfläche auch für alle Bibliotheken in:
<Installationsverzeichnis>/share/Basic
nicht zur Verfügung steht.
Ich hatte gerade deshalb den Code gepostet, welcher auch für die Bibliothek "Standard" funktioniert. Mit Folgendem kannst Du auch die Bibliothek Standard mit Passwortschutz versehen:
Code: Alles auswählen
Sub passwort()
Dim oLib
oLib = GlobalScope.BasicLibraries
oLib.changeLibraryPassword("Standard","","neuesPasswort")
End Sub
Gruß
Stephan
-
- Beiträge: 3
- Registriert: Mi, 13.12.2006 08:16
Hallo !!!
Nach stunden (tage-)langen Versuchen muß ich mir leider eingestehen, dass ich es irgendwie einfach nicht hinbekomme!
Ich bin wohl noch zu unerfahren für die OOo-Welt.
Da ich wohl in erster Linie die falschen Bibiotheken anspreche, werd ich den Code dann jetzt ungeschützt ins Netzwerk stellen.
Vielen Dank an dieser Stelle für alle Antworten, Tipps & Tricks!
Mein besonder Dank geht an Stephan und seine sehr umfangreichen Beschreibungen.
- Danke ! -
Gruß
OOoCrasher
Nach stunden (tage-)langen Versuchen muß ich mir leider eingestehen, dass ich es irgendwie einfach nicht hinbekomme!
Ich bin wohl noch zu unerfahren für die OOo-Welt.

Da ich wohl in erster Linie die falschen Bibiotheken anspreche, werd ich den Code dann jetzt ungeschützt ins Netzwerk stellen.
Vielen Dank an dieser Stelle für alle Antworten, Tipps & Tricks!
Mein besonder Dank geht an Stephan und seine sehr umfangreichen Beschreibungen.
- Danke ! -
Gruß
OOoCrasher