Access ile uygulama geliştirenler projelerinin sonuna geldiklerinde tatlı bir sıkıntı yaşanır. O kadar zaman harcanan program dağıtılmaya başlanınca programı herkes istediği gibi kullanacaktır. Bundan dolayı programın herkesin elinde dağıtılmasını engellemek için çare aranmaya başlanır. İşte konumuz bu aşamada devreye giriyor. "Microsoft Access ile güvenli lisanslama nasıl yapılır?" sorusuna cevap arıyoruz.
1- Yaptığınız programı dağıtmadan önce yapmanız gereken en önemli şey projenizi derleyip hata kontrolü yapmaktır:
VBA penceresinde yer alan Debug menüsünde ilk sıradaki Compile Database seçeneğine tıklayın. Eğer projenizde bir problem yoksa hiç bir mesaj almazsınız. Ayrıca tekrar Debug menüsüne tıklarsanız artık Compile Database seçeneğinin pasif olduğunu görürsünüz.
Sakın kodlarınızın hatasız olduğu algısına kapılmayın. Bu menü ile sadece syntax (sintaks diye okunur) yani program dilbilgisi hatalarına karşı denetlenir. Mesela bir fonksiyon parametre isterken siz parametresiz olarak çağırmışsanız hata alırsınız. Böylece kodunuzu düzeltebilirsiniz. Programlama hatalarına karşı bir uyarı vermez. Mesela bir listedeki müşterilerin isimlerine tıklayınca detayını farklı bir formda gösterdiğiniz kodunuz var. Formun adını yanlış yazarsanız size uyarı vermeyecektir.
Mutlaka kodunuzu yazarken günde bir kere Compile yeni derleme işleminde geçirin. Bu şekilde hem kodlarınızın kalitesini kısmen denetlemiş olursunuz hem hataları tespit edip düzelterek kod tecrübenizi arttırırsınız.
2- VBA kodlarınızı izlemeye karşı şifreleyin.
VBA penceresinde menüde Tools - Database Properties'e tıklayın. Açılan pencerede üstte iki tane sekme var. Sağdaki Protection sekmesinde Lock project for viewing kutusunu işaretleyin. Alttaki kutuya uzun ve karışık bir şifre yazın. İlk kutuya yazdığınızın aynısını ikinci kutuya yazın.
3- Programınızı 2007 öncesi versiyonlarda MDE, 2007 ve sonraki versiyonlarda ise ACCDE formatına çevirin.
Eğer programınızı MDB veya ACCDB (kısaca proje hali veya derlenmemiş hali denilebilir) formatında saklarsanız çok yanlış yapmış olursunuz. Öncelikle derlenmemiş dosyalar yavaş çalışır. Ayrıca derlenmiş programınızda kodları yazmış olduğunuz VBA kısmına ulaşmak daha zor hale gelir.
Burada şu mantık hatasına düşmeyin. "Ben bu kadar uğraştım benim kodlarımı kimse alıp kendi programında kullanmasın". Belki haberiniz yok (!) ancak bu kodlar sizin değil ve ilk defa siz yazmıyorsunuz. Bu kodlar her yerde ve herkes tarafından ulaşılabilir halde. Siz sadece kendi algoritmanız ile kodları farklı kullanıyorsunuz o kadar.
Bizim kodları gizlemedeki amacımız ücretli satılan programın serbest bir şekilde kullanılmasını zorlaştırmak. Yoksa işin ehli insanlar programınızı ücretsiz bir şekilde dağıtabilecek imkan ve yeteneğe sahipler. Dediğim gibi amacımız sadece sıradan kullanıcılar için ücretsiz kullanmalarını engellemek.
4- Lisanslama işleminde asla standart Registry kodlarını kullanmayın.
Genelde örneklerde görürsünüz. Kayıt defterine (Registry) kayıt eklemek için SaveSetting okumak içinde GetSetting komutunu kullanılır.
Bu komutlar ile programın ilk kurulduğu tarih kaydedilir. Programın çalıştırıldığı günden ilk gün çıkarılarak kaç gün programın çalıştığı tespit edilir. 30 günlük demo olarak düşünülen programda iki tarih arası fark 30 günden fazla çıkarsa programın demo kullanım süresi dolduğundan program kapatılır.
Burada en büyük açık SaveSetting ve GetSetting komutlarının bilgileri hep aynı yere yazmasından kaynaklanır. Başlat menüsünden Çalıştır'a tıklayıp regedit yazıp enter tuşuna basın. Açılan kayıt defterinde "HKEY_CURRENT_USER\Software\VB and VBA Program Settings" adresini açın. İşte tüm bilgiler buraya yazılıyor:
Gördüğünüz gibi son çıkış tarihini istediğim gibi ileri/geri alacak olursam programın demo süresi hiç bir zaman bitmez.