|
|
Freischaltung nur für eine Festplatte
|
|
Hans Happel
Sie haben eine Anwendung geschrieben und wollen diese weitergeben oder
verkaufen. Um zu verhindern, dass ihr Programm zur Raubkopie wird sollten Sie
einen Schutz einbauen.
Erstellen Sie ein Programm das aus einer mehrstelligen Zahl ein Passwort
erzeugt. Geben Sie dieses Programm niemals weiter.
Bauen Sie in die Anwendung die Sie weitergeben möchten eine Routine ein, die
aus dem Passwort wieder die ursprüngliche Zahl erzeugt.
Schieben Sie ein Drive-Steuerelement auf Ihre Form. Machen Sie es evtl.
unsichtbar.
Machen Sie es dem Anwender leicht Ihnen die Seriennummer seiner Festplatte
mitzuteilen. Erstellen Sie ein Label-Element und geben sie folgendes in das
Klick-Ereignis ein:
Private Sub Label1_Click()
Dim SerNum As Long
Dim Empfänger As String
Dim Betreff As String
SerNum = SerienNummer(Left(Drive1.Drive, 2) & "\")
Empfänger = "MeinName@meineDomain.de"
Betreff = "Freischaltung für Laufwerk Nr.: " & SerNum
Call ShellExecute(Me.hWnd, vbNullString, "mailto:" & Empfänger &
"?subject=" & Betreff, "", "", 1)
End Sub |
Laden Sie folgendes in den Deklarationsteil:
Private Declare Function GetVolumeInformation Lib "kernel32" Alias
"GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal
lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long,
lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long,
lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal
nFileSystemNameSize As Long) As Long
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA"
(ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal
lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As
Long |
Erstellen Sie folgende Funktion:
Function SerienNummer(ByVal spDrive As String) As Long
Dim sVName As String * 100
Dim SerNum As Long
GetVolumeInformation spDrive, sVName, 100, SerNum, vbNull, vbNull,
vbNullString, 0
SerienNummer = SerNum
End Function |
Den Inhalt des Load-Ereignisses können Sie kopieren oder über das
Eigenschaftenfenster eingeben.
Private Sub Form_Load()
With Label1
.FontUnderline = True
.ForeColor = vbBlue
.FontBold = True
.FontSize = 12
.Caption = "MeinName@meineDomain.de"
.AutoSize = True
End With
End Sub |
Wenn der Anwender auf Label1 klickt, wird Outlook Express gestartet.
Ihre Adresse ist bereits eingeblendet und im Betreff-Teil steht die
Seriennummer seiner Festplatte.
-
Machen Sie aus der Seriennummer ein Passwort.
-
Senden Sie das Passwort an den Anwender.
-
Das Passwort wird in der eingebauten Routine entschlüsselt und mit der
Seriennummer verglichen.
Mit dieser Methode wird ihre Anwendung nur für eine Festplatte
freigeschaltet. Jeder darf das Passwort sehen. Sie können es öffentlich
versenden. Nur Ihr Verschlüsselungsprogramm dürfen Sie niemandem zeigen. Aus
diesem Grunde wird hier auch keine Verschlüsselungs-Routine gezeigt. Ihr
Schlüssel muss nicht sehr kompliziert sei, es sei den Ihr Kunde ist ein echter
Hacker. Otto-Normal-User wird ihn nicht knacken.
|
|