Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
944to948
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
944to948
944to948
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Lizenzschlüssel generieren

Lizenzschlüssel generieren
28.01.2008 21:20:04
Claudia
Hallo alle zusammen,
ich habe ein kleines Programm für unseren Vertrieb geschrieben, welches mittels eines Passwortes freigeschaltet werden muss. Dieses Passwort wird in der Registry abgelegt und bei Programmöffnung wieder abgefragt. So weit so gut, den Teil dieses Makros habe ich mal von Hajo erhalten funzt suuper.
Nun ist aber das Problem, das immer das gleiche Passwort bei diesem Programm an alle Vertriebsmitarbeiter abgegeben wird. Hat jemand eine Idee, wie ich z.B. ein individuelles Passwort generieren kann welches z.B. nur in Verbindung mit einen Namen (z.B. Namen des Mitarbeiters) funktioniert.
Beispielweise
Max Müller Passwort abcd
Tom Muster Passwort ju78
usw.
Soll heißen, das Passwort muss sich aus dem jeweils sehr individuellen Namen generieren.
Wer hat eine Idee oder sogar soetwas schon einmal gemacht und kann mir ein solches Beispiel bzw. Makro zur Verfügung stellen. Ich stehe echt auf dem Schlauch.
Gruß
Claudia

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Lizenzschlüssel generieren
28.01.2008 21:28:11
Reinhard
Hi Claudia,
wie sieht denn der Code von Hajo aus?
Gruß
Reinhard

AW: Lizenzschlüssel generieren
28.01.2008 21:41:00
Claudia
Hallo Reinhard,
mit dem Code von Hajo wird das Programm für 5 Tage zum testen freigeschaltet. Danach muss man den Lizenzschlüssel über eine MsgBox eingeben, den man bei uns in der Abteilung erhält.

Public Sub DatumsCheck()
Dim ersterAufruf As Date
If GetSetting("KUNDENLISTE", "Einstellungen", "ErsterAufruf") = "31.12.9999" Then Exit Sub
If GetSetting("KUNDENLISTE", "Einstellungen", "ErsterAufruf") = "" Then
'setzen des Datums
SaveSetting "KUNDENLISTE", "Einstellungen", "ErsterAufruf", Format(Date, "dd.mm.yyyy")
End If
'Check ob noch Gültig
ersterAufruf = GetSetting("KUNDENLISTE", "Einstellungen", "ErsterAufruf")
MsgBox "Der erste Aufruf war am " & ersterAufruf
If DateDiff("d", DateValue(ersterAufruf), Date) > 5 Then
If Application.InputBox("Der Einarbeitungszeitraum ist vorbei!" & vbLf _
& "Geben Sie den Lizenzschlüssel, den Sie von unserer" & vbLf _
& "Vertriebsabteilung bei Frau Mandel für dieses Programm erhalten," & vbLf _
& "in das vorgesehene Feld ein, dann können Sie" & vbLf _
& "das Programm unbegrenzt verwenden" & vbLf _
& "Productkey Eingabe des Lizenzschlüssels") = "ab123cde" Then
SaveSetting "KUNDENLISTE", "Einstellungen", "ErsterAufruf", "31.12.9999"
Else
MsgBox "Der Lizenzschlüssel ist nicht richtig," & vbLf _
& "das Programm wird jetzt geschlossen." & vbLf _
& "Versuchen Sie es erneut indem Sie das" & vbLf _
& "Programm wieder aufrufen, oder senden." & vbLf _
& "Sie eine E-Mail an Frau Mandel ."
ThisWorkbook.Saved = True
If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close
End If
Else
MsgBox "Sie haben noch " & 5 - DateDiff("d", DateValue(ersterAufruf), Date) & " Tage  _
zum testen!"
End If
End Sub


Meine Idee ist nun, das ich in eine Zelle z.B. A1 den Namen des Mitarbeiters eingebe, in Zelle B1 das Passwort. UNd nur Name und Passwort passen eindeutig zusammen. Beides muss nun in der Registry gespeichert werden, wo das ganze bei Programmstart wieder abgerufen und auf Gültigkeit geprüft wird.
Hintergrund ist der, das ein Mitarbeiter eine Kudenliste an die Hand bekommt und die Bestimmungen in unseren Datenschutzrichtlinien auf einmal echt streng und kompliziert geworden sind.
Gruß
Claudia

Anzeige
AW: Lizenzschlüssel generieren
28.01.2008 22:26:00
Fred
Hi,
was passiert eigentlich, wenn den Nutzer die Systemuhr verstellt?
mfg Fred

AW: Lizenzschlüssel generieren
28.01.2008 22:40:55
Claudia
Hi Fred, nun ja, dann kann er länger als 5 Tage testen. Aber so eine "Intellegenzbestie" hatte ich noch nicht, zumindest nicht wissentlich.
Kannst Du mir denn bei meinem Prob helfen?
Stelle Frage noch mal auf offen, da es sp#t ist und evtl. erst morgen wieder einer reinguckt.
Gruß
Claudia

AW: Lizenzschlüssel generieren
29.01.2008 00:22:00
Daniel
Hi
"was passiert eigentlich, wenn den Nutzer die Systemuhr verstellt?"
dagegen könnte man doch auch z.B. beim Speichern und Schließen die aktuelle Systemzeit in die Registry schreiben.
Wenn dann beim Öffnen die gespeicherte Zeit der letzten benutzung grösser ist als die Systemzeit, dann kann die Datei nicht geöffnet werden.
oder man loggt mit, wie oft die Datei geöffnet wurde und beschränkt den Einsatz auf eine Anzahl X.
Gruß, Daniel

Anzeige
Hat keiner ne Idee - Lizenzschlüssel generieren
29.01.2008 09:22:00
Claudia
Hallo guten Morgen zusammen,
hat denn keiner ein geniale Idee wie man das Prob lösen oder angehen könnte. Bin echt verzweifelt und unser "Datenschutzbeauftragter" (man was für ein Titel :-) ) hat schon wieder genervt.
Liebe Grüße
Claudia

AW: Hat keiner ne Idee - Lizenzschlüssel generieren
29.01.2008 10:06:24
Daniel
Hi
mal ne blöde Frage, warum benötigt ihr innerhalb eurer Firma einen Passwordschutz?
wenn ein Password aus einem Namen generiert werden soll, dann könntest du so vorgehen:
1. Eingelogten Anwender mit ENVIRON("USERNAME") abfragen
2. das Password generiert sich dann daraus, daß du aus dem Namen jeweils besimmte Buchstaben nimmst (z.B. den ersten, letzten , dritten , vorletzen) und diese einfach im Alphabet verschiebst
ggf. so:

Sub Password_generieren()
Dim AnwenderName As String
Dim Anwender As String
Dim Password As String
Dim x As Byte
Anwender = InputBox("mindestens 4 Zeichen", "Namen eingeben")
AnwenderName = UCase(Replace(Anwender, " ", ""))
x = Asc(Left(AnwenderName, 1))
x = x + 13
If x > 90 Then x = 64 + x - 90
Password = Password & Chr(x)
x = Asc(Right(AnwenderName, 1))
x = x + 5
If x > 90 Then x = 64 + x - 90
Password = Password & Chr(x)
x = Asc(Mid(AnwenderName, 3, 1))
x = x + 8
If x > 90 Then x = 64 + x - 90
Password = Password & Chr(x)
x = Asc(Mid(AnwenderName, Len(AnwenderName) - 3, 1))
x = x + 25
If x > 90 Then x = 64 + x - 90
Password = Password & Chr(x)
MsgBox "Das Password für " & Anwender & " ist " & Password
End Sub


Gruß, Daniel

Anzeige
AW: Hat keiner ne Idee - Lizenzschlüssel generiere
29.01.2008 10:31:43
Claudia
Hallo Daniel,
bei einem Vertrieb unserer Größe (60 MA), habe wir viele "faule Eier" dabei. Wenn einer nur wenige Tage an Bord ist und das kommt öfter vor als man denkt, hat er ja theoretische eine große Kundendatei und es gilt diese Datei weitesgehend vor unbefugten zu schützen. Ich weis, ist nicht das gelbe vom Ei, aber mein Chef spart wo er nur kann.
Dein Ansatz klingt aber schon mal sehr gut. Werde mal damit arbeiten. Vielen vielen Dank
Gruß
Claudia

AW: Hat keiner ne Idee - Lizenzschlüssel generieren
29.01.2008 12:28:14
Alex
Hallo Claudia,
suchst du viellecht soetwas!?

Public Function asciiTOhex()
Dim Zelle As Range
Dim hex1
Dim LastRow, Zeichen, NameLang, i, j As Integer
Dim Name, Buchstabe As String
Dim TabName As Worksheet
Set TabName = Worksheets("Tabelle1")
LastRow = IIf(IsEmpty(TabName.Range("A65536")), TabName.Range("A65536").End(xlUp).Row,  _
65536)
For i = 1 To LastRow
Set Zelle = TabName.Cells(i, 1)
Name = Zelle.Value
NameLang = Len(Zelle)
For j = 1 To NameLang
Buchstabe = Left(Name, 1)
Name = Right(Name, NameLang - j)
Zeichen = Asc(Buchstabe)
hex1 = hex1 & Hex(Zeichen)
TabName.Cells(i, 2) = hex1
Next j
hex1 = ""
Next i
End Function


Online Generator: http://www.mml.uni-hannover.de/einhorn/jstools/wepkey.html
gruß
Alex

Anzeige
AW: Hat keiner ne Idee - Lizenzschlüssel generiere
29.01.2008 12:51:00
Claudia
Hallo ALex,
ja genau, das ist soetwas wonach ich suche. Jetzt habe ich natürlich nur noch das Problem, wie ich das ins Prog einbaue.
Mir schwebt vor, das z.B. in Zelle A1 der Mitarbeiter seinen Namen einträgt (wie er Ihn mir vorher gegeben hat) und in Zelle A2 muss dieser Mitarbeiter dann das von mir generierte Passwort eingeben.
Und Jetzt kommt das für mich schwierigste, wie bringe ich das Prog nun dazu nur zu arbeiten wenn Name in Zelle A1 und Passwort in Zelle A2 (generiert mit Deiner Funktion) zusammen passen. Ich hoffe Du verstehst was ich meine.
Liebe Grüße
Claudia

Anzeige
AW: Hat keiner ne Idee - Lizenzschlüssel generiere
29.01.2008 14:01:00
Alex
Hi Claudia,
ich habe das Prog von Hajo und meine Funktion ein wenig umgeschrieben.
So muss eigentlich Funzen:

Public Function asciiTOhex(Name As String) As String
Dim TabName As Worksheet
Dim hex1
Dim LastRow, Zeichen, NameLang, i, j As Integer
Dim Buchstabe As String
Set TabName = Worksheets("Tabelle1")
NameLang = Len(Name)
For j = 1 To NameLang
Buchstabe = Left(Name, 1)
Name = Right(Name, NameLang - j)
Zeichen = Asc(Buchstabe)
hex1 = hex1 & Hex(Zeichen)
Next j
[C3] = hex1
asciiTOhex = hex1
End Function



Public Sub DatumsCheck()
Dim ersterAufruf As Date
Dim key As String
Dim UserName As String
Dim TabName As Worksheet
Set TabName = Worksheets("Tabelle1")
UserName = TabName.[A1].Value
If GetSetting("KUNDENLISTE", "Einstellungen", "ErsterAufruf") = "31.12.9999" Then Exit Sub
If GetSetting("KUNDENLISTE", "Einstellungen", "ErsterAufruf") = "" Then
'setzen des Datums
SaveSetting "KUNDENLISTE", "Einstellungen", "ErsterAufruf", Format(Date, "dd.mm.yyyy")
End If
'Check ob noch Gültig
ersterAufruf = GetSetting("KUNDENLISTE", "Einstellungen", "ErsterAufruf")
MsgBox "Der erste Aufruf war am " & ersterAufruf
If DateDiff("d", DateValue(ersterAufruf), Date) > 5 Then
'key = TabName.[B1]
'oder
key = InputBox("Der Einarbeitungszeitraum ist vorbei!" & vbLf _
& "Geben Sie den Lizenzschlüssel, den Sie von unserer" & vbLf _
& "Vertriebsabteilung bei Frau Mandel für dieses Programm erhalten," & vbLf _
& "in das vorgesehene Feld ein, dann können Sie" & vbLf _
& "das Programm unbegrenzt verwenden" & vbLf _
& "Productkey Eingabe des Lizenzschlüssels")
If key = asciiTOhex(UserName) Then
SaveSetting "KUNDENLISTE", "Einstellungen", "ErsterAufruf", "31.12.9999"
Else
MsgBox "Der Lizenzschlüssel ist nicht richtig," & vbLf _
& "das Programm wird jetzt geschlossen." & vbLf _
& "Versuchen Sie es erneut indem Sie das" & vbLf _
& "Programm wieder aufrufen, oder senden." & vbLf _
& "Sie eine E-Mail an Frau Mandel ."
ThisWorkbook.Saved = True
If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close
End If
Else
MsgBox "Sie haben noch " & 5 - DateDiff("d", DateValue(ersterAufruf), Date) & " Tage  _
zum testen!"
End If
End Sub


gruß
Alex

Anzeige
AW: Hat keiner ne Idee - Lizenzschlüssel generiere
29.01.2008 14:05:58
Alex
ich bins noch mal
die Zeile [C3] = hex1
in der Funktion, kannst du löschen (war zum Testen gedacht)
gruß

AW: Hat keiner ne Idee - Lizenzschlüssel generiere
29.01.2008 14:22:24
Claudia
Hallo Alex,
abolut spitze. Mein erster Test war erfolgreich. Werde mich noch heute dransetzten und alles in unser Prog einpflegen. Damit MUSS der Datenschutzexperte zufrieden sein. Wenn nicht, dann gibst nen Satz heiße Ohren.
Nochmal vielen vielen Dank
Gruß
Claudia

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige