Probiers mal so
füge dies in das Load Ereignis deiner Startform
Me.lblStart gibt den ersten Programmstart aus und
Me.lblTestzeit den verbleibenden Testzeitraum
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
Dim Testzeit As Integer = 30
Dim Start As Date = Date.Now
Dim T As Testzeit = New Testzeit
Start = T.Registrierung_lesen
Me.lblStart.Text = Start
T = Nothing
Me.lblTestzeit.Text = Testzeit - DateDiff(DateInterval.Day, Start, _
Date.Now) & " Tage"
End Sub erstelle eine neue Klasse und nenne sie Testzeit.vb
Imports Microsoft.Win32
Imports System.Security.Cryptography
Imports System.Text
Imports System.IO
Public Class Testzeit
Public Function Registrierung_lesen() As Date
Dim RegKey As RegistryKey = Registry.CurrentUser.OpenSubKey( _
"Software\Testprogramm\Erststart", True)
Dim Start As Date = Date.Now.ToShortDateString
If (Not RegKey Is Nothing) Then ' Schlüssel vorhanden
Start = Entschlüsseln(RegKey.GetValue("Erststart", _
Date.Now.ToShortDateString))
RegKey.Close()
Else
Call Registrierung_schreiben(Start)
End If
Return Start
End Function
Private Sub Registrierung_schreiben(ByVal Start As Date)
Dim RegKey As RegistryKey = Registry.CurrentUser.OpenSubKey( _
"Software\Testprogramm\Erststart", True)
If RegKey Is Nothing Then ' Schlüssel nicht vorhanden
RegKey = Registry.CurrentUser.CreateSubKey( _
"Software\Testprogramm\Erststart") ' erstellen
End If
If (Not RegKey Is Nothing) Then ' Schlüssel ist vorhanden
RegKey.SetValue("Erststart", Verschlüsseln(Start))
RegKey.Close()
End If
End Sub
' ------- Verschlüsseln
' -------------------------------------------------------------------------
' --------
Private Const rijndaelIvLength As Integer = 16
Private Const Passwort As String = "Mein_Passwort"
Public Function Verschlüsseln(ByVal Wert As String) As String
If Wert = "" Then
Return ""
Exit Function
End If
Dim rd As New RijndaelManaged
Dim md5 As New MD5CryptoServiceProvider
Dim key() As Byte = md5.ComputeHash(Encoding.UTF8.GetBytes(Passwort))
md5.Clear()
rd.Key = key
rd.GenerateIV()
Dim iv() As Byte = rd.IV
Dim ms As New MemoryStream
ms.Write(iv, 0, iv.Length)
Dim cs As New CryptoStream(ms, rd.CreateEncryptor, _
CryptoStreamMode.Write)
Dim data() As Byte = System.Text.Encoding.UTF8.GetBytes(Wert)
cs.Write(data, 0, data.Length)
cs.FlushFinalBlock()
Dim encdata() As Byte = ms.ToArray()
Return Convert.ToBase64String(encdata)
cs.Close()
rd.Clear()
End Function
Public Function Entschlüsseln(ByVal Wert As String) As String
If Wert = "" Then
Return ""
Exit Function
End If
Dim rd As New RijndaelManaged
Dim md5 As New MD5CryptoServiceProvider
Dim key() As Byte = md5.ComputeHash(Encoding.UTF8.GetBytes(Passwort))
md5.Clear()
Dim encdata() As Byte = Convert.FromBase64String(Wert)
Dim ms As New MemoryStream(encdata)
Dim iv(15) As Byte
ms.Read(iv, 0, rijndaelIvLength)
rd.IV = iv
rd.Key = key
Dim cs As New CryptoStream(ms, rd.CreateDecryptor, _
CryptoStreamMode.Read)
Dim data(ms.Length - rijndaelIvLength) As Byte
Dim i As Integer = cs.Read(data, 0, data.Length)
Return System.Text.Encoding.UTF8.GetString(data, 0, i)
cs.Close()
rd.Clear()
End Function
End Class bei mir klappt das prima.
Hänk
(Wer früh aufsteht hat mehr vom Tag) |