Veritabanı yerine uygulama içinde veri tutmak.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Veritabanı yerine uygulama içinde veri tutmak.

Mesaj gönderen neu84 »

Selamlar,
Arkadaşlar hani program lisanslamada key'i regeditte, ve virüs programlarında yıllık olarak süreli olunca bi şekilde kontrol ediliyor. Ancak pc ye format atip virüs programını tekrar kurunca yine kullanabiliyoruz, yada herhangi bi program.. bi tarih bilgisi tutmak istiyorum ama regeditte tutmak kullanıcının değiştirebilmesini saglayabilir, pc nin tarihine göre kısıtlamakta yetmiyo, kullanıcı tarihi geri çekerse o zaman yine kullanmaya devam edecek. Bu nedenle veriyi veritabanı, regeditte tutmak yerine, uygulama içine gömebilirmiyiz, yani uygulama içinde degişsin depolansın. bu mümkünmüdür? uygulama kapanıp açılsada en son deger içinde tutulsun. Varmıdır böyle bişeyi yapmanın çözümü sizce?
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Veritabanı yerine uygulama içinde veri tutmak.

Mesaj gönderen aslangeri »

s.a.
istediğini yapılabilir. ancak makinesine format atan adam senin progrmaınında ilk halini yükleyemeyecekmi?
format atmadan önce senin değiştirdiğin dosyayı saklaması format attıktan sorna da geri kopyalaması lazım.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: Veritabanı yerine uygulama içinde veri tutmak.

Mesaj gönderen neu84 »

aslangeri yazdı:s.a.
istediğini yapılabilir. ancak makinesine format atan adam senin progrmaınında ilk halini yükleyemeyecekmi?
format atmadan önce senin değiştirdiğin dosyayı saklaması format attıktan sorna da geri kopyalaması lazım.

A.s Cevap için tşk ederim.. Makinesine format atınca ona setup dosyasını vermeyecegim için kendim yeniden düzenleyip gidip kurmayı düşünüyorum, bu nedenle ilk yada son hali pek farketmiycek. Kurulum tarihini yeniden giricem. ve öyle kurucam. Eger bu şekilde exe içine gömülü halde veri tutup degerini değiştirebiliyosam format attıktan sonra dosyayı saklaması şart degil, gidip yeniden kurulum yaparım. Bunu nasıl yapabilecegim konusunda bilgilendirirmiisiniz beni lütfen..
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: Veritabanı yerine uygulama içinde veri tutmak.

Mesaj gönderen neu84 »

Arkadaşlar bir önerisi olan yokmu?
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Veritabanı yerine uygulama içinde veri tutmak.

Mesaj gönderen mkysoft »

programınızda sabit bir değişken tanımlayın, örneğin TARIHIM12122011 gibi. Programı derlediğinzde exe içerisinde bu bilgi bulunacaktır. Açık olan bir exe'yi düzenleyemeyeceğiniz için ikinci bir exe'ye ihtiyacınız olacak. Tarih değiştirmek istediğinizde ana exe kapanarak yardımcı exe açılsın, binary modda ana exe'yi tarayarak başta belirlediğiniz değişkenin yerini bularak gerekli değişikliği yapsın. Bu şekildeki bir sistem virüs programlarının hoşuna gitmeyebilir. Windows vista ve 7 'de UAC yüzünden uyarı verebilir. Denemeniz lazım.
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: Veritabanı yerine uygulama içinde veri tutmak.

Mesaj gönderen neu84 »

mkysoft yazdı:programınızda sabit bir değişken tanımlayın, örneğin TARIHIM12122011 gibi. Programı derlediğinzde exe içerisinde bu bilgi bulunacaktır. Açık olan bir exe'yi düzenleyemeyeceğiniz için ikinci bir exe'ye ihtiyacınız olacak. Tarih değiştirmek istediğinizde ana exe kapanarak yardımcı exe açılsın, binary modda ana exe'yi tarayarak başta belirlediğiniz değişkenin yerini bularak gerekli değişikliği yapsın. Bu şekildeki bir sistem virüs programlarının hoşuna gitmeyebilir. Windows vista ve 7 'de UAC yüzünden uyarı verebilir. Denemeniz lazım.

Çok tşk ederim, ancak ben pek anlayamadım nasıl yapılacagını, binary modda exe tarama konusunda hiç bi bilgim yok, bunun için bir kaynak önerebilirmisiniz. İki exe yi birbiriyle nasıl ilişkilendirebilirim, hiç duymamıştım buna benzer bişey.. :(
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Veritabanı yerine uygulama içinde veri tutmak.

Mesaj gönderen mkysoft »

Google'da arama yaparsanız binary dosya işlemleri ile ilgili örnek bulabilirsiniz. mesala:
http://www.delphibasics.co.uk/Article.asp?Name=Files

Ben size nasıl yapabileceğiniz ile ilgili genel bir mantık çizmeye çalıştım sadece. Uygulamanız içinden shell execute komutuyla başka bir uygulama çağırabilirsiniz. "Exe'leri ilişkilendirmek" anlam taşıyan birşey değil.
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: Veritabanı yerine uygulama içinde veri tutmak.

Mesaj gönderen G.Arkas »

İstediğin şey bu ancak bazı riskleri var.

http://www.google.com.tr/search?sourcei ... editserver

1) Dosyayı Binary modda açıp içerisine bir takım String de olsa eklemeler yaptığında EOF bilgisi değişebileceği için Antivirüs yazılımları bunu Trojan yada Generic_File tarzı uygulama olarak tanıyabilir.
2) Dosyaya gömeceğim bilgiler sıradan bir .exe dosyasını şişirecektir. Dosya boyutu bir anda 100-200 mb lere kadar fırlayacaktır.
3) Eklediğin veriyi daha sonra silme şansın olmayacaktır ancak Replace edebilirsin.
4) Büyük boyutlarda ve karmaşık tipteki string ifadeleri içine ekleyemezsin Stack Owerflow hatası alırsın.
5) Dosya her çalıştığında içine eklenen ifadeleri okuması için Binary modda açılacağından yukarıda @Mkysoft kardeşimin dediği gibi bu dosya içerisinde işlem yapamayacaksın. Ancak harici bir exe dosyası ile veri gömebilirsin. Ve veri gömdüğün exe sadece verileri Extract etmek için kısa bir süreliğine açılıp harici bir dosyaya verileri aktarıp kapanması gerekir. Aksi halde veri kaybı yaşarsın.
6) Bence bunu kullanmak yeri MSAccess kullanıp bunu projeye Resource olarak ekleyip çalışma anında exe içerisinde çıkartıp. Kayıt ekedikten sonra Dinamik olarak tekrar exe dosyasına gömebilirsin. Bunun için google da Exemod ve Dynamic Resource olarak arama yapabilirsin.

Eğer tutacağın veri sadece basit bi tarih verisi ise öncelikle gömdüğün string ifadeyi mutlaka şifrelemelisin aksi halde windasm yada herhangi bir decomplier ile projene girildiğinde senin tarih verin kabak gibi meydana çıkar. Yeinde olsam lisanslama için harici bir dosyada şifreli bir şekilde verilerimi tutardım. Bunun için kullanabileceğin en iyi şifreleme algoritması AES tir.kırılması zor bir algoritmadır. Ancak imkansız değildir.

Saygılarımla.
Resim
Kullanıcı avatarı
tanerileri
Üye
Mesajlar: 55
Kayıt: 06 Tem 2007 11:30

Re: Veritabanı yerine uygulama içinde veri tutmak.

Mesaj gönderen tanerileri »

turbopower ın yanlış hatırlamıyorsam onguard isimli bir componenti yazılıma süreli deneme ve / veya lisans veriyor yada programın çalışmasını belli bir süre soruna kadar izin veriyordu.
bu componenti deneyerek istediğini yapabnilirsin. diğer yöntemleri deneme bile.

sanırım delphi 2007 hariç her sürümde çalışıyor. ve tamamen ücretsiz.
Taner İLERİ.
Cevapla