1. Ana Sayfa
  2. Kodlama Dilleri
  3. VB.NET – 30 Günlük Demo Yapımı Proje Dosyalı [Türkçe Anlatım]

VB.NET – 30 Günlük Demo Yapımı Proje Dosyalı [Türkçe Anlatım]

Genelde her sıfırdan başlayan kodlamacıların aklında olan sorulardan biri bu olabilir. Çünkü her kodlamacı ya kendi yaptığı bir programı 30 günlük olarak lisanslama yaparak kullandırtmak ister ya da 30 günlük lisanssız program vermek ister. Bizim burdaki amacımız ise 30 günlük lisanslama yapmadan programı sınırlı kullanım sağlamak. Lafı uzatmadan yapılacaklara geçelim isterseniz.
 
Gerekli Malzemeler;
2 adet önceden açılmış “Form1.vb” ve “Form2.vb” uygulama pencereleri
1 adet boş class ekleyeceğiz ama bu class dosyamızın ismi TÜRKÇE karakter içermemeli!
 
Şimdi bu malzemelerimizi öğrendiğimize göre artık iş geldi bunları nasıl yapacağımızın kodlarına. Şimdi ilk olarak oluşturduğumuzun class dosyasını açıyoruz ve içerisine şu kodları yazıyoruz.

Option Explicit On
Imports System.IO
Public Class cTrial
Private m_DaysUsed As Integer = 0
Private m_MaxDays As Integer = 30
Private m_Ended As Boolean = False
Private m_Filename As String = vbNullString
Public ReadOnly Property DaysUsed As Integer
Get
'Return number of days used.
Return m_DaysUsed
End Get
End Property
Public ReadOnly Property DaysLeft As Integer
Get
'Return number of days left.
Return (MaxDays - m_DaysUsed)
End Get
End Property
Public Property Filename As String
Get
Return m_Filename
End Get
Set(ByVal value As String)
'Set filename.
m_Filename = value
'Check if trial file is found.
If Not File.Exists(Filename) Then
'Create trial file.
If Not UpdateFile(Now.Date.AddDays(MaxDays), 0) Then
Throw New FileNotFoundException
Exit Property
End If
End If
'Check the date.
CheckDate(Now.Date)
End Set
End Property
Public ReadOnly Property HasEnded As Boolean
Get
Return m_Ended
End Get
End Property
Public Property MaxDays As Integer
Get
Return m_MaxDays
End Get
Set(ByVal value As Integer)
m_MaxDays = value
End Set
End Property
Private Sub CheckDate(ByVal Date1 As DateTime)
Dim sr As StreamReader = Nothing
Dim Date2 As DateTime = Nothing
Dim Flag As Integer = 0
Dim Tmp As String = vbNullString
Try
sr = New StreamReader(Filename)
'Read in file contents.
Tmp = XorString(sr.ReadToEnd())
'Close file.
sr.Close()
'Read trial flag.
Flag = Integer.Parse(Tmp(0))
'Read date.
Date2 = Tmp.Substring(1)
'Check if trial finished.
If (Flag <> 0) Then
m_DaysUsed = MaxDays
m_Ended = True
Else
'Return number of days used.
m_DaysUsed = MaxDays - DateDiff("d", Date1, Date2) + 1
'Check if in range.
m_Ended = (DaysUsed <= 0) Or (DaysUsed > MaxDays)
End If
Catch ex As Exception
m_DaysUsed = MaxDays
m_Ended = True
End Try
If HasEnded Then
m_DaysUsed = MaxDays
'Add date and trial end flag.
UpdateFile(Date2, 1)
End If
End Sub
Private Function UpdateFile(ByVal EndDate As DateTime, ByVal Flag As Integer) As Boolean
Dim sw As StreamWriter = Nothing
'File format is as follows flag,date
'flag 0 = still in trial
'flag 1 = trial has ended.
Try
sw = New StreamWriter(Filename)
'Write date and trial flag.
sw.Write(XorString(Flag & EndDate.Date))
'Close file.
sw.Close()
Catch ex As Exception
Return False
End Try
Return True
End Function
Private Function XorString(ByVal source As String) As String
Dim sb As New System.Text.StringBuilder()
Rnd(-1)
'Set Random seed.
Randomize(1830)
For Each c As Char In source
'Encrypt bye
Dim b As Byte = Asc(c) Xor Int(Rnd() * 256) Mod 255
'Append char to stringbuilder.
sb.Append(Chr(b))
Next c
'Return string
Return sb.ToString()
End Function
End Class

 
Class dosyamıza yukarıda yer alan kodları yazdıktan sonra aşağıdaki kodu “Form1.vb” kısmına yazıyoruz.

Option Explicit On
Imports System.IO
Public Class frmmain
Private MyTrial As New cTrial()
Private Sub ShowMsg(ByVal msg As String)
MessageBox.Show(msg, "Trial-Demo",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub
Private Sub frmmain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
With MyTrial
'Set the number of trial days.
.MaxDays = 30
'Tril file, hide this file somewere were no one can find it.
.Filename = Path.Combine(Application.StartupPath, "trial.sys")
'Check if trial has ended.
If .HasEnded Then
ShowMsg(.MaxDays & " günlük deneme süreniz doldu!")
Else
ShowMsg(.DaysUsed & " günlük deneme süresinin " & .MaxDays & " günündesiniz.")
End If
End With
End Sub
End Class

 
İşlemimiz bu kadar. Bu yazımı beğendiyseniz yorum yazmayı unutmayın! Bir sonraki yazımızda görüşmek dileğiyle kendinize iyi bakın hoşçakalın.

Yorum Yap

Yorum Yap