Makro vor Dieben schützen -ActivX?-

Wessy

Erfahrenes Mitglied
Hallo alle zusammen,

ich habe das Problem, das ich gerne meinen Makro-Quellcode vor Dieben schützen möche. Ich denke jeder kenn das, ein (wenigstens für ihn) tolles Makro geschrieben, alles wunderbar und jetzt kommt jemand daher und klaut das einfach, verändert 2 Zeilen und gibt dies nun als sein eigenes, tolles, unverfälschliches Makro aus. Ich denke, Gedankengut sollte man schützen können da dort ja auch eine Menge KnowHow drin stecken kann.....

Ich habe in der aktuellen ct-Magazin eine sehr tolle und ausführliche Anleitung gefunden, mit der dies sehr detailiert beschrieben wird, leider viel zu detailiert für mich. Es werden dort Funktionen in VB6 beschrieben von denen ich absolut keine Ahnung habe. Ich bin mit diesem Tutorial (auch mit den beiliegenden Templatedateien) einfach nicht weiter gekommen.... Das Tool zum Erstellen des, in diesem Falle ActivX-Control, ist natürlich auch noch auf Englisch und die Hilfedatei fehlt.....

Gibt es eine DAU-frendliche Anleitung um sein Makro direkt zu kompilieren? Oder hat jemand von euch eine verständliche Anleitung? Anregungen, Hilfe oder sonst etwas....?

Für Hilfe bin ich schon mal sehr dankbar. MFG der Wessy....
 
Hat denn wirklich niemand eine Idee? Ich kann mir das nicht vorstellen, das wirklich noch nie jemand sein Makro sichern wollte....

Los, falls ihr eine Idee dazu habt, Postet doch wenigstens mal einen Ansatz über den man diskutieren kann oder der einem direkt weiter hilt.....

Nochmals Gruß vom Wessy
 
Hallo,
ich schütze meine VBA-Makros in Excel mit Rechtsklick auf das entsprechende Projekt, danach Eigenschaften, Schutz. Danach können die Makros zwar noch ausgeführt werden, die Bearbeitung oder Ansicht ist nur nach Eingabe eines Passwortes möglich.

Ich hoffe, die Antwort hilft Dir, obwohl sie etwas spät kommt.
Viele Grüße
Sigi
 
Hallo sigipr,

klar hilft das weiter. Auch wenn es etwas später kam. Also da hab ich aber eine Frage: Du hast geschrieben:
mit Rechtsklick auf das entsprechende Projekt, danach Eigenschaften, Schutz.

Mit Projekt meinst du was genau?

Sollte das mit Makros bei Excel etwas anders Funktionieren, muss ich mich da noch mal einlesen. Aber ich finde (in meinem Fall bei Word) nicht das "Projekt". Ausserdem finde ich bezüglich meiner Makros keine Möglichkeit diese mit einem Passwortschutz zu versehen...
 
Hallo Wessy,

ich hab' das mal in Word 2000 ausprobiert, funktioniert genauso, also:
Du wechselst mit Alt F11 in VB, dort über Ansicht den Projekt-Explorer aktivieren. Dann siehst Du in diesem Projekt-Fenster den Namen Deines Dokumentes (=Projekt). Den klickst Du mit rechts an, wählst Projekt-Eigenschaften und dort das Register Schutz.

Viele Grüße

Sigi
 
Das ist zwar ein Schutz, der lässt sich aber mit geeigneten Programmen in Nullkommanix aushebeln. Für den Standard-User ist er sicher schwer überwindbar, ein etwas geeichter Programmierer/Hacker hat den aber schnell überwunden.

Ich hab mal eine Möglichkeit gesehen, den VBA-Code zu verschlüsseln. Der Code ist lauffähig, kann jedoch nicht mehr eingesehen werden. Die Verschlüsselung kann aber auch nicht mehr rückgängig gemacht werden. Such mal in Google danach, vielleicht findet sich was.


Der Doc!
 
Hallo DrSoong,

vielen Dank für deinen Beitrag, aber ich habe die ultimative Lösung. Ich habe mir jetzt mal zum Spass das VisualBasicControlCreationEdition 5 Tool besorgt. Das gibt es kostenlos bei Microsoft zum download. Es ist eine abgespeckte Version von Visual Basic 5 und bietet weniger Funktionen (dafür kostenlos).

Ich habe dann ein Standard-EXE-Projekt begonnen, ein Formular erstellt und mein Makro in die Private Sub eines Buttons reingeschrieben (Doppelklick auf den selbst erstellten Button). Dann einfach unter Project / References die Microsoft Word 9.0 Object Library (z.B. 9.0, geht auch mit 10.0,11.0) meinem Projekt hinzugefügt und letztlich die folgenden Befehle vor mein Makro geschrieben (wieder Doppelklick auf den selbst erstellten Button):

Code:
 Dim WordApp As Word.Application
   Set Dim WordApp = GetObject(, "Word.application")

Damit wird dann die Verbindung zwischen dem 'Makro' in Visual Basic und dem Word-Dokument hergestellt.

Um das ganze dann auch noch 100% zum laufen zu bekommen, muss vor jeder Funktion die aus Word kommt, WordApp. stehen. Also z.B. so:

Code:
MsgBox WordApp.ActiveDocument.Content
  (Zeigt den Inhalt des aktuellen Word-Dokuments in einer MsgBox)


Fertig!

PS.: Um dann aus eurem Makro ein selbstständig laufendes Programm zu machen (*.EXE) solltet ihr nur noch auf File / Make... klicken und eure EXE-Datei erzeugen. Da das aber mit dem Programm, zumindest bei mir, nicht funktionierte habe ich das Projekt dann später auf der Arbeit mit Visual Basic 6 Pro in eine EXE-Datei kompiliert.

Viel Spass beim probieren....
 
Zuletzt bearbeitet:
Ist eine Lösung, aber eine sehr unsaubere. Du musst ja die EXE mitliefern, auf dem System hier bei mir in der Arbeit kann ich aber z.B. keine EXE-Dateien runterladen/empfangen.


Der Doc!
 
Hallo DrSoong,

"unsaubere"...? Hmm, teile deine Meinung nicht. Ich denke, ein Makro als EXE-Datei zu verpacken, ist die mit Abstand sauberste Lösung.

Bei einem Makro hast du das Problem, das viele Leute Diese nicht installieren können (das KnowHow fehlt). Ausserdem kann der Quelltext eingesehen werden und es läuft nur interpretiert ab. Ein ActivX ist da schon erheblich besser, es ist zwar (für DAUs) schwer zu installieren, ist dafür vor Änderung durch Dritte geschützt und ist vorher kompiliert worden. Eine EXE-Datei vereint alle Vorteile: Du kannst sie jedem DAU schicken und er muss nur einen Doppelklick beherschen, dein Quelltext kann nicht ausgelesen werden und ist kompiliert (einfach schneller).

PS.: Dein Problem das du mit EXE-Dateien auf der Arbeit hast, kenne ich auch. Haben wir hier auch (wegen Sicherheitsrestriktionen). Aber denk doch mal nach. Dann schreibst du mir vorher eine Mail, und ich schicke dir die Datei ohne Dateiendung. Dann packst dus dir auf deine Platte und klebst das .EXE wieder hinten dran. Ist doch gar nicht so schwer. Oder ich schicks dir per gelber Post. Mal ganz ehrlich: Weil du auf der Arbeit gerade EXE-Dateien nicht empfangen kannst, ist das eine unsaubere Lösung? ;) Was machst du denn, wenn jegliche Downloads gesperrt werden....? Dann ist alles unsauber......:)

Was würdest du denn als "saubere" Lösung bezeichnen...?
 
Zuletzt bearbeitet:
Also nichts für ungut. Aber warum packt du nicht dein gesamtes fertiggestelltes Projekt mit einem Packer(winzip).Schützt die datei mit einem Passwort. Aus die Mouse. Wenn Du Info aus dem Projekt benötigst kommst jederzeit an den Quellcode. Die kompilierten kannst du jederzeit reaktivieren.

Manfred
 
Zurück