Seite 1 von 1
Schutz von Makro Code
Verfasst: Sa, 15.04.2006 18:15
von mike6
Hallo,
ich arbeite in einer Verwaltung. Dort kann man Verbesserungsvorschläge einreichen.
Leider habe ich die Erfahrung gemacht, das eigene Verbesserungsvorschläge öfters abgelehnt werden. Kurze Zeit später werden diese dann von anderen Personen in abgeänderter Form, aber mit gleichem Makrocode neu eingereicht.
Ich habe nun eine makrogesteuerte Datei entwickelt und möchte den Makrocode in OpenOffice.Org schützen.
Wie mache ich soetwas ???
mfg
mike6
Verfasst: Sa, 15.04.2006 21:15
von turtle47
Hallo mike6,
schau mal hier:
http://www.openimpulse.de/content/view/122/36/1/4/
Habe das mal selbst ausprobiert. Es funktioniert.
Unter Biliotheken mußt du aber zuerst eine neue Bibliothek anlegen,
da die Standardbibliothek sich nicht schützen lässt.
Nach Anlegen der neuen Bibliothek, z.B. wie vom Programm
vorgeschlagen hier: "Library1" die Makros im Bereich Module hier hinein
verschieben und dann "Library1" mit Kennwort versehen.
Bitte auch drauf achten , dass Du die aktuelle Tabelle unter "Ort" angewählt hast!
Das Makro kannst du jetzt zwar immer noch anklicken und Dir ohne
Passworteingabe anzeigen lassen. Desshalb musst Du die Datei jetzt ganz schließen und
anschließend neu starten. Jetzt erst ist das Makro geschützt.
Edit: Wenn Du die Makros über Schaltflächen aufrufst, so musst Du
natürlich den Pfad unter "Eigenschaften" der Schaltfläche neu definieren!
Jürgen
Verfasst: So, 16.04.2006 12:51
von mike6
Hallo,
vielen Dank für die schnelle "österliche " Hilfe.
Funktioniert bestens.
mfg
mike6

Verfasst: Mi, 19.04.2006 15:42
von mike6
Hallo,
noch etwas auffälliges.
Habe eine neue Bibliothek angelegt und geschützt.
Alle Makros laufen einwandfrei.
Wenn ich die Calc-Datei schließe und wieder öffne, funktioniert
ein Makro nicht

. Gebe ich das Passwort ein und führe das Makro
aus, funktioniert es.
Es funktioniert also nur bei Eingabe des Passowortes und nicht
in einer Passwortgeschützten Datei.
mfg
mike6
Verfasst: Mi, 19.04.2006 17:20
von turtle47
Hallo mike6,
hmmm, kann ich leider nicht bestätigen.
Habe selbst die Tabelle und das Dokument Passwortgeschützt und bei mir
funktionieren die Makros. In dem Fall zwar nur drei, aber die laufen.
Was heisst:
Wenn ich die Calc-Datei schließe und wieder öffne, funktioniert ein Makro nicht
Ein Makro von wieviel?
Werden die Makros automatisch gestartet oder über Schaltfläche?
Jürgen
Verfasst: Mi, 19.04.2006 19:25
von mike6
Hallo,
hier nochmals der Vorgang.
Das Makro wird beim Betätigen einer Schaltfläche
gestartet.
1.) Makro klappt.
2.1.) Makrocode (Bibliothek) wird per Passwort geschützt.
2.2.) Makro klappt.
3.) Datei wird geschlossen
4.) Datei wird wieder geöffnet.
5.) Makro klappt nicht.
6.) Passwort wird eingegeben, Makrocode ist sichtbar.
7.) Makro klappt wieder.
mfg
mike6
Verfasst: Mi, 19.04.2006 19:52
von turtle47
Hi Mike6,
so ein Sch......

(Sorry. Ist mir nur so rausgerutscht).
Zwei kurze Fragen noch:
1. Hast du das Tabelleblatt auch schreibgeschützt?
(In schreibgeschützten Bereichen kann zum Beispiel keine Formatwechsel durchgeführt werden)
2. Was soll das Makro denn bewerkstelligen?
Jürgen
Verfasst: Do, 20.04.2006 08:29
von mike6
Hallo Jürgen,
das Tabellenblatt ist nicht schreibgeschützt.
Das Makro liesst aus einer WLDGE Datei verschiedene
Daten aus.
+++++++++++++++++++++++++++++++++++++++++++++
Aus einem anderen Forum:
Habe mein Makro im Programm-Modul, also global, gespeichert.
+++++++++++++++++++++++++++++++++++++++++++++
Ich habe eine neuen Bibliothek angelegt und die Makros
aus der Standard Bibliothek dort hineinkopiert.
Was ist " global "gespeichert ??
mfg
mike6
Verfasst: Do, 20.04.2006 20:00
von turtle47
Hallo Mike6,
musste mich im Internet erst mal schlau machen was WLDGE-Dateien sind.
Hab auch was gefunden.
Global gespeicherte Makros sind z.B. die von OpenOffice.org bereitgestellten
Makros auf die man immer Zugriff hat oder die in dem Ordner "Meine Makros" abgelegt sind.
Nicht globale Makros sind nur in bestimmten Dateien bzw. Tabellen verfügbar wo sie zugeordnet sind
und nur von dort aufgerufen werden können.
Was für eine OO.org Version benutzt du eigentlich?
Ausserdem hast du meine Fragen
Ein Makro von wieviel?
Werden die Makros automatisch gestartet oder über Schaltfläche?
noch nicht beantwortet!
Jürgen
Verfasst: Fr, 21.04.2006 11:21
von mike6
Hallo Jürgen,
ich benutze Oo 2.0.2.
In der Datei sind 9 Makros enthalten.
mfg
mike6
Verfasst: Fr, 21.04.2006 17:11
von turtle47
Hallo Mike6,
langsam bin ich mit meinem Latein am Ende.
Beschäftige mich ja auch erst seit kurzem mit OO und Basic.
Was mich wundert ist, dass sich noch kein anderer User in zu diesem Thema geäussert hat.
Sind die alle in Osterurlaub????????
Wir benutzen jedenfalls die gleiche OO.o Version.
Bei mir sieht das folgendermaßen aus:
Nach dem Schützen:
Laufen die Makros direkt hintereinander ab oder werden diese einzeln aufgerufen z.B. über Schaltfläche?
Schönes WE
Jürgen
Verfasst: Fr, 21.04.2006 19:51
von Stephan
Was mich wundert ist, dass sich noch kein anderer User in zu diesem Thema geäussert hat.
Na OK, ich versuch's mal:
1.
es ist natürlich blöd zu wissen es geht nur ein Makro nicht und alle anderen gehen wenn man nicht den Quell-Code zumindest des einen Makros hat. Keine Ahnung wonach ich schauen würde, aber nur Trockentrainig wird uns hier nicht weiterbringen.
2.
In den 1.1.x Versionen ließen sich Makros (entgegen gelegendlich anderer Behauptungen) auch verschlüsseln, dort war es erfahrungsgemäß so das der Aufruf der verschlüsselten Makros mittels einen unverschlüsselten Makros in der Standardbibliothek erfolgen mußte. Möglicherweise ist das auch hier die Lösung.
Gruß
Stephan
Verfasst: Sa, 22.04.2006 09:17
von mike6
Hallo,
hier der Quellcode.
In der Bibliothek "xyz" befinden sich im Basic-Modul "mdl_parser"
8 Makros, die sich bis auf das nachfolgende in der pw-geschützten Bibliothek
ausführen lassen.
Es erscheint die Fehlermeldung: Fehler beim Anlegen.Das Modul kann nicht geladen werden,
ungültiges Format
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Sub StartParser
Dim oFlurstueck as Object
Dim sFlurstueck as String
Dim sFlur as String
Dim sFlurstknr as String
'Dim sFlurstknr1$
oDlg.getControl("cmd_ok").Enable=False
' Einlesen der Eingaben
sFlurstueck = Trim( Right(Trim(oDlg.getControl("cmb_input_1").getText()), 6) )
sFlur = Trim( oDlg.getControl("cmb_input_2").getText() )
sFlurstknr = Trim( oDlg.getControl("txt_input_3").getText() )
sFlurstknr1 = Split(Trim(sFlurstknr), "/")
If sFlurstueck = "" OR sFlur = "" OR sFlurstknr = "" Then
Msgbox("Fehler: Fehlerhafte Eingabe. Sie haben kein Flurstück angegeben.", 16)
Stop
End If
If UBound(sFlurstknr1) <> 1 Then
Msgbox("Fehler: Fehlerhafte Eingabe. Sie haben keine korrekte Flurstücknummer angegeben.", 16)
Stop
End If
If Not FileExists(oDlg.getControl("file_input").getText()) Then
Msgbox("Fehler: Die angegebene Datei konnte nicht gefunden werden.", 16)
Stop
End If
' Erstellen einer Strukturvaribale vom Typ Flurstueck
oFlurstueck=createObject("Flurstueck")
With oFlurstueck
.sEingabe=sFlurstueck+"-"+sFlur+"-"+sFlurstknr
.sFilename = oDlg.getControl("file_input").getText()
.lGemarkung = CLng(sFlurstueck)
.iFlur = CInt(sFlur)
.lFlurstknr1 = CLng(sFlurstknr1(0))
.lFlurstknr2 = CLng(sFlurstknr1(1))
End With
' Debugging Ausgabe
addDebug("StartParser","Fluerstueck->sEingabe: "+oFlurstueck.sEingabe)
addDebug("StartParser","Fluerstueck->sFilename: "+oFlurstueck.sFilename)
addDebug("StartParser","Fluerstueck->iGemarkung: "+oFlurstueck.lGemarkung)
addDebug("StartParser","Fluerstueck->iFlur: "+oFlurstueck.iFlur)
addDebug("StartParser","Fluerstueck->lFlurstknr1: "+oFlurstueck.lFlurstknr1)
addDebug("StartParser","Fluerstueck->lFlurstknr2: "+oFlurstueck.lFlurstknr2)
addDebug("StartParser","Starte getData(oFlurstueck)" + Chr(13))
getData(oFlurstueck)
printData(oFlurstueck)
oDlg.getControl("cmd_ok").Enable=True
If checkwork(oFlurstueck) = 0 Then
addDebug("StartParser","Starte printData(oFlurstueck)")
MsgBox("Die Datensätze wurden ausgelesen und befinden sich nun im Tabellenblatt 'Data'.", 64)
Else
addDebug("StartParser","Fehler: Debugging-Protokoll wird erstellt")
MsgBox("Information: Es konnten nicht alle Informationen aus der angegebenen Datei ausgelesen werden. Es wurde ein Fehlerprotokoll erstellt, welches Sie nun speichern können." , 64)
oDlg.getControl("cmd_errreport").Visible=True
Stop 'Fehlerprotokollmeldung ausblenden mit 'Stop
End If
WriteSettings
oDlg.endexecute()
End Sub
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Wie kann ich dieses Makro über die "Standard-Bibliothek" in der Bibliothek "xyz" starten?
mfg
mike6
Verfasst: Sa, 22.04.2006 13:55
von turtle47
Hi Mike6,
irgendwie bin ich ein bischen sauer.
Ich habe das Gefühl Du möchtest immer alles auf einem silbernen Tablett serviert bekommen,
anstatt mal die Suchfunktion hier im Forum oder aber z.b. Google zu bemühen. Habe mir auch mal
Deine anderen Beiträge hier im Forum angesehen und da waren die Situationen ähnlich.
Habe auch nirgendwo gelesen, dass Du Dich selbst mal konstruktiv mit der Lösung eines Problems
von anderen Usern auseinandergesetzt hast.
Nach dem Hinweis von Stephan (übrigens vielen Dank für den Tip)
habe ich Google mal bemüht und innerhalb von 5 Minuten eine Seite gefunden die mir weiterhilft.
Damit wir Dich nicht überfordern hier der Link.
http://www.starbasicfaq.de/WiekannmanMa ... ml#Zweig36
Den Rest mußt Du dir schon selber dazu basteln.
Bei mir funtioniert es.
Der Fachmann staunt und der Laie wundert sich!