| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Protect your Lisp (2496 mal gelesen)
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1833 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 05. Feb. 2013 13:48 <-- editieren / zitieren --> Unities abgeben:
Hallo! Mich würde mal interessieren, wie Profis ihre hart erkämpften Früchte schützen und vor evtl. "Raub"kopieren sichern. Mein Hilfe brachte ein code der mir Serial Nummer ausliest und vergleicht, desweiteren habe ich eine Zeiteinschränkung eingebaut. Es funktioniert zwar, (gibt es ein aber ?) Code:
;;;VxGetAcadLicenseInfos - Returns the license information's of the current...; ; -- Function VxGetAcadLicenseInfos ; Returns the license information's of the current AutoCAD version ; like ProductName, Release, SerialNumber, Language, etc. ; Copyright: ; ©2004 MENZI ENGINEERING GmbH, Switzerland ; Arguments [Type]: ; None ; Return [Type]: ; > License information's '((Info1 . Value1)...) [STR] ; Notes: ; - The number of information's depends on the AutoCAD version ; (defun VxGetAcadLicenseInfos ( / KeyLst RegPth RetVal) (setq RegPth (strcat "HKEY_LOCAL_MACHINE\\" (vlax-product-key)) KeyLst (vl-registry-descendents RegPth T) ) (foreach memb KeyLst (if (not (eq memb "")) (setq RetVal (cons (cons memb (vl-registry-read RegPth memb)) RetVal ) ) ) ) (reverse RetVal) ) (defun date (/ date_str year month) (setq date_str (rtos (getvar "cdate") 2 4) year (substr date_str 1 4) month (substr date_str 5 2) ;;; day (substr date_str 7 2) ;;; hour (substr date_str 10 2) ;;; minu (substr date_str 12 2) datum (strcat year month day) ) datum ) (defun c:test () (if (and (= (cdr (assoc "SerialNumber" (VXGETACADLICENSEINFOS))) "392-29393067") (<= (atof (date)) (atof "20130206")) ) (load (strcat DCL "diroTool")) (princ "\nKeine Berechtigung !!!") ) (princ) )
------------------ Gruss Dirk http://cadplayerlounge.blogspot.se/
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jupa Ehrenmitglied V.I.P. h.c. Ruheständler
Beiträge: 6052 Registriert: 16.09.2004 WINDOWS Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.
|
erstellt am: 05. Feb. 2013 13:56 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
Theodor Schoenwald Ehrenmitglied
Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 05. Feb. 2013 20:07 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Hallo Dirk, Zeitbeschränkung? Wenn der Benutzer die Zeit an seinem PC zurückstellt (das habe ich schon öfters gesehen), nützt die Zeitbeschränkung nicht viel. Allerdings hat der Benutzer etwas Arbeit. Damit der Benutzer etwas mehr Arbeit hat, kannst Du die Zeit auch nach unten beschränken. Dann muss er erst herausfinden wie weit er seine Zeit am PC zurück stellen darf. Auf jeden Fall hat er mehr Mühe. Noch mehr Mühe bekommt er, wenn das Programm z.B. aus zwei Dateien besteht. Bei der einen ist die Zeitbeschänkung eingebaut und eine andere Funktion läuft nicht mehr. Wenn alles aber kompliziert wird, musst Du aufpassen, was Du wo eingebaut hast, sonst stellst Du die selbst ein Bein. Es kommt auch darauf an, wie wertvoll ein Tool für Dich ist. Die ganzen Umstände und die Pflege ist nicht wenig Arbeit, dann soll doch jemand ein Tool unberechtigt nutzen, bevor ich mit viel Arbeit mit dem Schutz mache. Gruß Theodor
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 05. Feb. 2013 21:23 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Du kannst den Computernamen auslesen, die Autocad-Serial, die Version, das aktuelle Datum... Mit Schreibrechten kannst du iwo ne Datei mit nen Zahlencode ablegen Ziffern und Buchstaben kannst du beliebig umrechnen... Nun lass dir ne wilde Formel einfallen, verknüpfe sie mit dem Datum, lass dir ne Mail mit dem "Eingangscode" schicken, und sende den "Antwortcode" zurück, zerlege alles in 100 Dateien und compiliere diese zu einer vlx oder nimm eine andere Sprache für den Schlüssel... So - nun bist du gefragt
------------------ Mfg Heiko Elefantenjagd in Afrika "... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..." -Lots of irritating superfluous parentheses!- Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Niggemann Mitglied
Beiträge: 165 Registriert: 31.10.2003 Win 98 Se, ACAD 2004, XP Prof, ACAD 2004 und ACAD 2010
|
erstellt am: 05. Feb. 2013 23:24 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Hallo Dirk, ich benutze seit ein paar Jahren den Zugriff auf die Autocad-Serial, war nurmal so zum testen. Klappt super, bei einem Nutzer habe ich auch mal die Verion mit abgefragt, ist bis heute kein Problem. Wird der Rechner getauscht und das vorhandene ACAD wieder installiert kann der Nutzer das Programm weiter nutzen, will er es mit einer anderen Autocad-Serial benutzen kommt ein "allert" mit dem Hinweis das das Programm nicht für seine ACAD-Version zugelassen ist mit den Hinweis auf meinem Namen mit Telefonnummer. Da alles kompeliert ist kann man so schnell nicht den Eintrag ändern. Dieses System ist mit wenig Zeitaufwand zu pflegen. Gruß Niggemann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1766 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 06. Feb. 2013 08:00 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1833 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 06. Feb. 2013 12:24 <-- editieren / zitieren --> Unities abgeben:
Danke für Eure interessanten Beiträge, war mir echt hilfreich, zumal die Info mit der MACaddress mir neu war. Die Frage ist geklärt, wie ich Serialnummer, user ect abrufen kann. Sicherlich arbeiten alle erstellten Lisp programm compiliert im fas-format. Was ich will, das die Lisp-files nur unter Berücksichtigung der Sicherheitabfrage laufen, d.h für mich also, ich muss in jeden Lisp code die Sicherheitsabfrage einbauen. Mein Vorgang wär jetzt ein load O.g. Funktion zur Serialnummerabfrage, in der auch die berechtigten Serialnummern gespeichert sind. Anschl. in dem Lisp code fragen ob die Abfrage okay ist und damit ein Start der Funktion ausgelöst. Gibt es da vielleicht einen anderen vielleicht besseren Weg ? ------------------ Gruss Dirk http://cadplayerlounge.blogspot.se
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1833 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 08. Feb. 2013 12:52 <-- editieren / zitieren --> Unities abgeben:
Geschickter wäre vielleicht einen Sammelbehälter mit allen "geliebten" Tools aufzubauen, der wiederum nur über die Sicherheitabfrage ge-öffnet -startet werden kann. Ein interessante Punkt wäre, wie baut man eine Funktion auf, die nur von einem bestimmten Laufwerk (Suchpfad) gestartet werden kann ? ------------------ Gruss Dirk http://cadplayerlounge.blogspot.se
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1766 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 08. Feb. 2013 14:32 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Hallo Dirk, Zitat: Ein interessante Punkt wäre, wie baut man eine Funktion auf, die nur von einem bestimmten Laufwerk (Suchpfad) gestartet werden kann ?
Wo die Funktion gestartet wird muss egal sein (kann ja auch von vielen Rechnern gleichzeitig aus einem Netzwerkverzeichnis geladen werden). Vielmehr mußt Du dafür sorgen, daß auf dem lokalen Rechner eine eindeutige Kennung exisitert, z.B. in der Registry. ------------------ viele Grüße Jörn http://www.bosse-engineering.com Böschungsschraffen Youtube Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1833 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 22. Mrz. 2013 07:59 <-- editieren / zitieren --> Unities abgeben:
Ein Nachtrag, eigentlich eine ganz simple Methode sein Programm zu schützen ist, eine PIN einzubauen Folgende einfache Zeile kann man in sein startup einbauen (setenv "PIN" "1234567") Bevor ein Program gestartet werden soll baut man einfach die Abfrage mit Code:
(if (= (getenv "PIN") "1234567") (defun c: Program ) (princ "\nKeine Lizens ") (setenv "PIN" "")
------------------ Gruss Dirk http://cadplayerlounge.blogspot.se Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3858 Registriert: 15.10.2003
|
erstellt am: 05. Jul. 2013 17:44 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Aus dem obigen Informationspaket bleiben für mich dennoch zwei Fragen: a) Netzwerk- statt Einzellizenzen Der Umgang mit der Einzellizenz scheint klar, aber wenn man 30 Anwender alle mit der gleichen Netzwerklizenz hat und der Firma nur eine Lizenz anbietet? b) PIN Der Vorschlag mit der PIN ist mir nicht klar - wo ist hier der Schutz? Jeder Kunde kann sein Programm vielfach einsetzen oder weiterverkaufen / - schenken - den PIN gibt er immer mit ... Peter ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1833 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 06. Jul. 2013 14:32 <-- editieren / zitieren --> Unities abgeben:
Hi Peter, es sollte ein simples Beispiel sein, du kannst aber mit getenv wesentlich mehr abfragen, siehe hier Ich habe das Rad mal ein wenig weiter gesponnen. Was hälst du davon? Code: ;| den RegistryVerweis solltest du mit einem exe.Aufruf schreiben damit nur du weist wo die Abfrage steht. Zu Testzwecken kannst du mal diese Zeile eingeben (vl-registry-write "HKEY_CURRENT_USER\\Test" "" "123456789") |; (defun license (date computerName RegistryPIN) (if (<= date "20130707") (if (= "XXX" computerName) (if (= RegistryPIN "123456789") "der test ist okay" (princ "\n PIN ist falsch ") ) (princ "\n Auf dem Rechner nicht zugelassen !") ) (princ "\n Zeit abgelaufen") ) ) (defun protection (/) (if (= "der test ist okay" (license (rtos (getvar "cdate") 2 0) (getenv "ComputerName") (vl-registry-read "HKEY_CURRENT_USER\\Test") ) ) "ADSDJNKLULKAIIIDNKLKQQ1239899" (princ "\n keine Zulassung!!! ") ) )
(defun c:meinCode () (if (= "ADSDJNKLULKAIIIDNKLKQQ1239899" (protection)) (entsel "\n Wähle ein Objekt ") (alert "I want my cash first, by writer") ) )
------------------ Gruss Dirk http://cadplayerlounge.blogspot.se Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1833 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 06. Jul. 2013 19:13 <-- editieren / zitieren --> Unities abgeben:
Oder hier etwas gekürzt. Du legst eine license.fas - mit der Licenseabfrage an, dann eine Schlüssel.fas, wo dein eigens angelegter key drinsteht und dann rufst du die zwei compilierten Daten in deinem Code auf. Was meint ihr zu dem Beispiel Code:
; DIE DATEI FÜR DIE LIZENS ABFRAGE ; License.fas ( (lambda (date computerName RegistryPIN) (if (and (<= date "20130707") (>= date "20120707") ) (if (= "XXX" computerName) (if (= RegistryPIN "123456789") "ADSDJNKLULKAIIIDNKLKQQ1239899" (princ "\n PIN ist falsch ") ) (princ "\n Auf dem Rechner nicht zugelassen !") ) (princ "\n Zeit abgelaufen") ) ) (rtos (getvar "cdate") 2 0) (getenv "ComputerName") (vl-registry-read "HKEY_CURRENT_USER\\Test") ); DIE DATEI FÜR DEN SCHLÜSSEL ; key.fas "ADSDJNKLULKAIIIDNKLKQQ1239899" ; DER BEISPIEL CODE (defun c:meinCode () (if (= (load "H:\\license.fas") (load "H:\\key.fas")) (entsel "\n Wähle ein Objekt ") (alert "I want my cash first, by writer") ) (princ) )
------------------ Gruss Dirk http://cadplayerlounge.blogspot.se [Diese Nachricht wurde von cadplayer am 06. Jul. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3858 Registriert: 15.10.2003
|
erstellt am: 07. Jul. 2013 00:31 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Wenn ich es recht verstehe, so bindet diese Methode zwar das Programm absolut an die Lizenz, aber es schützt nicht vor unerlaubter Vervielfältigung und Weitergabe. Einfach Programm und die beiden Daten kopieren - beim Kollegen installieren - fertig. Peter ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1833 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 07. Jul. 2013 20:20 <-- editieren / zitieren --> Unities abgeben:
Ganz so einfach ist es nicht zu kopieren, da einmal der Computername und der Registryeintrag übereinstimmen muss. Optimaler wäre es natürlich, wenn der code selbst einen Schlüssel erzeugt, der das Programm freischaltet. Ich stelle mir das folgendermassen vor. Man schreibt in die LicensFunktion eine Formel, die den Schlüssel einliest und wenn die Auwertung korrekt ist, dann läuft das Programm, dann geht´s auch nicht mehr frei zu kopieren (und wie gesagt, der Registryeintrag behindert ebenfalls eigennütziges kopieren). Jetzt bist du gefragt ------------------ Gruss Dirk http://cadplayerlounge.blogspot.se Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1833 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 09. Jul. 2013 12:34 <-- editieren / zitieren --> Unities abgeben:
So könnte vielleicht eine Verschlüsselung aussehen. Die Funktion kann nur an dem Tag aktiviert werden, an dem der Aktivierungscode bestellt wurde. D.h., wenn man am nächsten Tag gleichen Activierungscode verwendet, funktioniert er nicht mehr. Es gilt jetzt vielleicht noch, die Funktionen sinnvoll aufzuteilen oder zu kürzen. Vom Prinzip funktioniert es aber. Code: ; Funktion verschlüsselt das Passwort mit dem aktuellem Datum (defun encrypt (str / p) (setq p (mapcar '+ (vl-string->list str) '(1 8 14 19 3 6 17 36 25 4 1 9 62))) (princ (strcat "\n Das verschlüsselte Passwort lautet: " (vl-list->string p))) (princ) ); Funktion entschlüsselt das Passwort (defun decrypt (str / p) (setq p (vl-list->string (mapcar '- (vl-string->list str) '(1 8 14 19 3 6 17 36 25 4 1 9 62)))) ) ; Funktion zur Auswahl eines Passwortes ; Gibt das verschlüsselte Passwort zurück (defun c:KuPaWort (/ key) (if (and (setq password (getstring "\n Gib ein vierstelliges Passwort ein! ")) (setq key (strcat password (rtos (getvar "cdate") 2 0))) ) (encrypt key) ) (princ) ) ; Funtion aktiviert das Passwort mit dem Verschlüsselten und schreibt es ; als Vermerk in die Registrydatei und in eine PasswortDatei (defun c:ActivKuPaWort (/ fname file) (if (eq (decrypt (getstring "\n Gib ein Passwort ein, um das Programm zu aktivieren! ")) (strcat (if (null password) (progn (princ "\n Der Code ist nicht mehr zugelassen \n") (exit) ) password ) (rtos (getvar "cdate") 2 0) ) ) (progn (princ "\n Das Programm ist aktiviert! ") (vl-registry-write "HKEY_CURRENT_USER\\Test" "" password) ; muss je nach Windowsversion angepasst werden (setq fname (strcat "C:\\Temp\\Test\\password" ".txt")) ; das Verzeichnis muss existieren (if (setq file (open fname "w")) (write-line password file) ) (close file) ) (princ "\n Das Passwort ist falsch! ") ) (setq password nil) (princ) ) ; zum Aufruf des Programms wird geprüft nach dem Registryeintrag (defun c:foo ( / fname file) (if (= (if (setq fname (strcat "C:\\Temp\\Test\\password" ".txt")) (progn (if (null (setq file (open fname "r"))) (progn (princ "\n kein Passwort vorhanden") (alert "\n keine Berechtigung ") ) (read-line file) ) ) ) (vl-registry-read "HKEY_CURRENT_USER\\Test") (if (= file nil) (princ "\n Programm kann nicht ausgeführt werden") (alert " Programm wird ausgeführt ") ) ) (alert "\n keine Berechtigung ") ) (princ) )
------------------ Gruss Dirk http://cadplayerlounge.blogspot.se Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3858 Registriert: 15.10.2003
|
erstellt am: 09. Jul. 2013 13:09 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Danke für die intensive Arbeit. Ich bin derzeit gröber andersweitig beschäftigt, daher kann ich mich erst später damit befassen. Peter ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1833 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 09. Jul. 2013 14:36 <-- editieren / zitieren --> Unities abgeben:
Dann bis später einmal foo funktion läuft so vielleicht genauer... Code: (defun c:foo ( / fname file) (if (= (if (setq fname (strcat "C:\\Temp\\Test\\password" ".txt")) (if (not (setq file (open fname "r"))) (princ "\n kein Passwort vorhanden ") (read-line file) ) ) (if (not (vl-registry-read "HKEY_CURRENT_USER\\Test")) (princ "\n kein PIN vorhanden") (vl-registry-read "HKEY_CURRENT_USER\\Test") ) ) (alert " Programm wird ausgeführt ") (alert "\n keine Berechtigung ") ) (princ) )
------------------ Gruss Dirk http://cadplayerlounge.blogspot.se Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1833 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 13. Jul. 2013 11:23 <-- editieren / zitieren --> Unities abgeben:
Auch mal zum Testen, ein Passwort in die Registry mit dotNET reinzuschreiben. Aus "csharpcorner" geholt - man compiliert die Zeilen in eine windowsConsole.exe und startet die exe einmal und das Passwort wird an die hkey_loacal_machine adress geschrieben. Code: using System; using System.Collections.Generic; using Microsoft.Win32; using System.Linq; using System.Text;namespace TheWindowsRegistryCSharp { class Program { static void Main(string[] args) { // Create a new key under HKEY_LOCAL_MACHINE\Software as MCBInc RegistryKey key = Registry.LocalMachine.OpenSubKey("Software", true); // Add one more sub key RegistryKey newkey = key.CreateSubKey("MCBInc"); // Set value of sub key newkey.SetValue("Dick Last", "cadplayerXXX"); } } }
Meine Frage wäre, hat von Euch schon mal einer versucht eine OnlineAbfrage zu vollziehen? D.h. man fordert als registrierter Nutzer online ein Passwort an und bekommt ein "einmalig verwendbares" Passwort zum freischalten.
------------------ Gruss Dirk http://cadplayerlounge.blogspot.se Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |