Kod:
Private Sub Form_Load()
Dim wrkDefault As Workspace
Dim nesne, disk, k
Set nesne = CreateObject("Scripting.FileSystemObject")
Set disk = nesne.GetDrive(nesne.GetDriveName(nesne.GetAbsolutePathName("d:\")))
k = disk.SerialNumber
Me.disk = k
End Sub
Bu kod d sürücüsünün seri numarasını formun yüklendiğinde disk isimli metin kutusuna yazdırıyor.
Benim diskin seri numarası "-1409129247"
Private Sub Komut0_Click()
Dim wrkDefault As Workspace
Dim nesne, disk, k
r = Mid(MD5String(Me.disk), 1, 8)
If asif = r Then
Set nesne = CreateObject("Scripting.FileSystemObject")
Set disk = nesne.GetDrive(nesne.GetDriveName(nesne.GetAbsolutePathName("d:\")))
k = disk.SerialNumber
Me.disk = disk.SerialNumber
klasor = CurrentProject.path & "/" & disk.SerialNumber & ".txt"
Open CurrentProject.path & "/" & disk.SerialNumber & ".txt" For Output As #1
Print #1, MD5String(disk.SerialNumber)
Close #1
DoCmd.OpenForm "başlangıç"
Else
10 MsgBox "HATALI ŞİFRE YENİNİDEN DENE"
End If
End Sub
Bu kodda daha önceden tanımlaması yapılmamış "asif" diye bir mevzu var.
r = Mid(MD5String(Me.disk), 1, 8)
disk metin kutusundaki sürücü seri numarasının md5 şifrelemesinin ilk 8 hanesi ile "asif" değerinin eşit olup olmadığı kontrol ediliyor,
disk seri numarası: -1409129247
md5 şifrelenmiş hali: 5bc85b63bab2893a461f5b05a4b26bc
asif değeri ile "5bc85b63" eşit ise, uygulama ile aynı dizine disk seri numarası ile aynı isimli txt dosyası oluşturup içerisine disk seri numarasının md5 şifrelenmiş halini bu txt dosyasına kaydediyor.
Kodda Alpeki'nin bahsettiği gibi mantık hataları var, fazlalıklar var. Ayrıca md5 şifreleme için modül olması gerekiyor.
sonraki mesajınızdaki
Private Sub Form_Load()
On Error GoTo 10
Dim nesne, disk, k
Set nesne = CreateObject("Scripting.FileSystemObject")
Set disk = nesne.GetDrive(nesne.GetDriveName(nesne.GetAbsolutePathName("d:\")))
k = disk.SerialNumber
r = CalculateMD5(disk.SerialNumber)
Open CurrentProject.Path & "/" & disk.SerialNumber & ".txt" For Input As 1
Do While Not EOF(1)
Line Input #1, kayit1
If kayit1 <> Empty Then
M = kayit1
satir = satir + 1
End If
Loop
Close #1
If M = r Then
Else
10 DoCmd.OpenForm "şifree"
End If
End Sub
şeklindeki kod ise tahminimce dağıtımı yapılan uygulamaya ait. Üstteki kod ile, Form açıldığında uygulama ile aynı dizinde bulunan txt uzantılı dosya okunuyor ve 1 satırdaki veri ile yani md5 şifrelenmiş seri numarası ile uygulamanın bulunduğu sürücünün md5 şifrelenmiş seri numarasının aynı olup olmadığı denetleniyor.
Muhtemelen siz sürücü seri numarasının md5 şifrelenmiş değerinin kaydedildiği txt uzantılı dosyayı uygulamayı kullanacak şahsa vereceksiniz, o uygulama ile aynı dizine kopyalayıp uygulamayı kullanacak.
Eğer txt dosyasının ismi veya içerisindeki verilerde uyumsuzluk varsa "şifre" isimli form açılacak. şifre isimli form açıldığında muhtemelen 2 metin kutusu olacak,
1. metin kutusunda sürücü seri numarası olacak, sizden alacağı md5 şifrelenmiş halini 2. metin kutusuna yazacak, butona tıkladığında uygunluk kontrol edilip uygulama ile aynı dizine 1. metin kutusundaki verinin isminde ve içerisinde 2. metin kutusundaki verinin yazılı olduğu txt uzantılı dosya kaydedecek. Uygulamadaki formları rahatça açabilecek.