Bereich beim Laden mit Passwort schützen?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

NIiLs
*
Beiträge: 18
Registriert: Mo, 02.11.2009 12:34

Bereich beim Laden mit Passwort schützen?

Beitrag von NIiLs »

Ich habe einige Vorlagen erzeugt. Manche enthalten einen oder mehrere Bereiche die ich nach/beim Laden mit LoadComponentFromUrl mit einem Passwort schützen möchte (damit ich das nicht ständig in der Vorlage hin- und herschalten muss).

Weiß jemand wie/ob das geht (über Makro aufzeichnen und den Navigator gehts auch nicht)?

TIA
Whookie
LokutusvB
***
Beiträge: 77
Registriert: Di, 03.11.2009 09:52

Re: Bereich beim Laden mit Passwort schützen?

Beitrag von LokutusvB »

Ich hatte ein ähnliches Problem. Und leider nützt einem auch XRay nichts, wenn man nicht mal ansatzweise vermuten kann, nach was man genau suchen muß.

Probiere es mal mit der Open Office Erweiterung MRI, die hat mir bei dem Problem geholfen, allerdings auch erst dann, als ich wußte wonach genau ich suchen muß.

Der Schutz mit Passwort ist allerdings etwas kompliziert, wie du hier nachlesen kannst:
http://www.oooforum.org/forum/viewtopic ... tectionkey
http://www.oooforum.org/forum/viewtopic ... tectionkey
http://www.openoffice.org/issues/show_bug.cgi?id=93477

In meinem Fall muß ich den Schutz vom bereich nur aufheben und wieder neu setzen, ohne das Passwort zu "berühren". Was mich allerdings erstaunt, beim Aushebeln des Schutzes will er das Passwort gar nicht wissen.

Hier mal ein Ausschnitt aus meinem Delphi-Code

Code: Alles auswählen

...
ts := Document.GetTextSections.getByname('Dokument');   // alternativ getByIndex
ts.SetPropertyValue('IsProtected', False); // Hebt Schutz auf, Passwort bleibt bestehen
ts.SetPropertyValue('IsProtected', True); // Schutz wieder setzen
...
Ich hoffe das hilft dir weiter.
NIiLs
*
Beiträge: 18
Registriert: Mo, 02.11.2009 12:34

Re: Bereich beim Laden mit Passwort schützen?

Beitrag von NIiLs »

Ja Danke(!) hat mir weitergeholfen und damit es auch mit dem Passwort klappt folgendes kleines Hilfsmacro. Man muss dazu einen Bereich definieren und den Bereich dann über den Navi. mit einem Passwort schützen. Danach kann das Makro aufgerufen werden und sein Ergebnis kopiert und im eigenen Dokument eingebaut werden:

Code: Alles auswählen

Sub ReadPasswordHash(oDoc As Object)
  dim iHash() As Integer
  dim oSec As Object
  dim i As Integer
  dim s As String

  If oDoc.TextSections.Count > 0 Then
     oSec = oDoc.TextSections.getByIndex(0)
     If oSec.IsProtected then
       iHash() = oSec.ProtectionKey
       If UBound(iHash()) > 0 then
         s = "MyKey = Array("
         for i = LBound(iHash()) to UBound(iHash())
           s = s + CStr(iHash(i)) + ", "
         next i
         s = Mid(s, 1, Len(s)-2) + ")"
         InputBox "Dim MyKey As Variant"+Chr(13)+"<Zeile von unten>"+chr(13)+_
         "ThisComponent.TextSections.getByIndex(0).ProtectionKey=MyKey",_
         "Eingabezeile unten rauskopieren (und ergänzen)", s
       else
         print "First section protected without password! Please use GUI to set a password!"
       end if
       
     else
       Print "First section is unprotected! Please use GUI to set a password!"
     end if
  Else
    Print "No Section found! Please add one and use GUI to protect it!"
  End If
end sub
Die Box bringt auch gleich das entspr. Anwendungsbeispiel mit, viel Spaß beim Schützen :D
Antworten