lisanslama örneği olarak kullandığım güzel bir uygulama var. gayet başarılı ama ufak bir sorun yaşıyorum.
örnek ektedir. açtığınızda 10 günlük demo sürüm kullanı seçerek lisans olayını geçebilirsiniz.
sorunum şu şekilde
program için kullanıcı adını kullanarak istediğim sürede lisans oluşturabiliyorum. mesela 1 yıllık lisans kodu oluşturdum ve bunu programa girerek 1 yıllık lisansı kaydettirdim. fakat her ay döndüğünde program lisansınız bitmiştir uyarısı verip serial formunu açıyor. tekrar lisans anahtarı girmeye gerek yok sadece onayla diyerek geçilebiliyor. ama işte sıkıntı her ay döndüğünde sanki programın lisansı bitmiş gibi uyarı verip serial formunu açması. yani her ay programı ilk açtığımızda bu uyarı ile karşılaşıyorsunuz. kodlamaları inceledim fakat bunu yaptıran kodu bulamadım.
yapmaya çalıştığım kaç aylık lisans oluşturulup girilmişse o süre bittiğinde bitti diye uyarı verip serial formunu açması. yani her ay verdiği uyarıyı nasıl kapatabiliriz?
1H6WPWW-10AFA-1H6WQJ4 DevHome için bir numara verin kontrol edelim.
(10/12/2015, 22:57)alpeki99 yazdı: 1H6WPWW-10AFA-1H6WQJ4 DevHome için bir numara verin kontrol edelim.
aktivasyon kodu oluşturucu ektedir.
sayın kesoka,
modSerial modülündeki VerifierLicence kodunda sıkıntı var gibi görünüyor.
VerifierLicence kodundaki ilgili kısmı aşağıdaki ile değiştirerek deneyiniz.
If Serial = "" Or kullanici = "" Then
SerialOK = False
VerifierLicence = True
DoCmd.OpenForm "SERİALFORMU"
DoCmd.Close acForm, "FKullaniciGiris1"
Else
SerialOK = True
VerifierLicence = True
RetrieveTimeLimit Serial, kullanici, Delivre, Expire, NombreJour
DoCmd.OpenForm "kisiler"
If Format(strDate, "mm.yyyy") > Format(Date, "mm.yyyy") Then
If vAffMsg = True Then MsgBox "LİSANS BİTİŞ TARİHİNİZ " & Format(Expire, "dd mmmm yyyy") & " SİSTEM TARİHİ İLE OYNANDIĞI İÇİN LİSANSINIZ İPTAL EDİLMİŞTİR", vbInformation, "SİSTEM TARİHİ İLE OYNANMIŞ."
SerialOK = False
DoCmd.OpenForm "SERİALFORMU"
DoCmd.Close acForm, "kisiler"
Exit Function
Else
WriteRegistry "HKCU", "Software\MicroSoft", "SONGİRİS", "S", Date
End If
If Delivre > Now Then
If vAffMsg = True Then MsgBox "SİSTEM TARİHİ İLE OYNANDIĞI İÇİN LİSANSINIZ İPTAL EDİLMİŞTİR." & Format(Delivre, "dd mmmm yyyy") & ".", vbOKOnly + vbCritical, "LİSANS İPTALİ"
SerialOK = False
DoCmd.OpenForm "SERİALFORMU"
DoCmd.Close acForm, "kisiler"
End If
If Expire < Now Then
If vAffMsg = True Then MsgBox "LİSANS BİTİŞ TARİHİ " & Format(Expire, "dd mmmm yyyy") & " LÜTFEN YENİ BİR LİSANS KODU EDİNİN.", vbInformation, "LİSANSINIZ BİTMİŞ"
SerialOK = False
DoCmd.OpenForm "SERİALFORMU"
DoCmd.Close acForm, "kisiler"
End If
End If
Ben aynı uygulamayı Polsotta kullanıyorum, herhangi bir sorun yok.
sayın ozanakkaya verdiğiniz kodu programdaki ile değiştirdim. fakat kati sonucu ocak ayında programı ilk açtığımda alıcam. siz kendi uygulamanızda kullanıyorsanız ve benim belirttiğim her ay lisans sorma uyarısı ile karşılaşmıyorsanız zaten sorun çözülmüştür. aynı modül ile ilgili olduğu için bir sorum daha var yeni konu açmak yerine burda belirtmeyi uygun gördüm çünkü aynı kod ile ilgili
modserial modülünde bulunan verifierlicence kodunda bulunan
Kod:
If Delivre > Now Then
If vAffMsg = True Then MsgBox "LİSANS BİTMESİ " & Format(Delivre, "dd mm yyyy") & ".", vbOKOnly + vbCritical, "GÜNDÜR"
SerialOK = False
VerifierLicence = False
DoCmd.Close acForm, "FKullaniciGiris1"
End If
If Expire < Now Then 'Renouvelement de la license
If vAffMsg = True Then MsgBox "LİSANS BİTİŞ TARİHİ " & Format(Expire, "dd mm yyyy"), vbInformation, "LİSANSINIZ BİTMİŞ"
SerialOK = False
'VerifierLicence = False
DoCmd.OpenForm "SERİALFORMU"
DoCmd.Close acForm, "FKullaniciGiris1"
End If
End If
If Delivre > Now Then
If vAffMsg = True Then MsgBox "LİSANS BİTMESİ " & Format(Delivre, "dd mm yyyy") & ".", vbOKOnly + vbCritical, "GÜNDÜR"
SerialOK = False
VerifierLicence = False
DoCmd.Close acForm, "FKullaniciGiris1"
alanındaki kodda lisans bitmeye yakın uyarı verdirme olayı yokmudur? yada bu kodun içine nasıl bir kod eklemeliyizki lisansın bitmesine 7 gün kaladan itibaren her açılıştı lisansınızın bitmesine ... gün kalmıştır şeklinde bir msgbox uyarısı verdirilebiliriz.
Modülde VerifierLicence fonksiyonu var.
Bu fonksiyonda
RetrieveTimeLimit Serial, Kullanici, Delivre, Expire, NombreJour
kodunun hemen altına
KalanGun = Expire - Date
If KalanGun < 7 Then
MsgBox ("lisansın bitmesine " & KalanGun & " Gün Kaldı")
End If
kodu ekleyiniz.
Daha önce belirttiğim gibi, bu kodları bende kendi uygulamamda kullanıyorum. Ancak yapan arkadaş basit işlemleri fazla fazla kod ekleyerek iyice karıştırmış. Kodların normalize edilmesi gerekli