Tam Sürümünü Görmek İçin : Kopyalama,programın açık kalma durumu ve internet sayacı
extra life
09/02/2003, 14:11
Selam arkadaşlar;
Delphide yaptıgımız programın kopyalanmamasını nasıl
sağlayabiliriz.
Bir de yaptıgımız programı açtık ve kapatmadan ikinci
defa açtıgımızda yine program açılıyor bu kez iki tane
program(aynı program) açık durumda oluyor. Sormak
istedigim programı kapatmadan ikinci defa açmaya
çalıştıgımızda nasıl bir program yazmamız gerekiyor
ki programın açık oldugunu anlasın ve uyarsın.
Üçüncü bir sorumsa ... Ben internet sayacı diye çok
küçük bir program yazmaya çalışıyorum. Amaç ben
internete girdigimde kaç dakika girdigimi Tabloya
kaydetsin. Fakat internete girdigimi program nasıl
anlayabilir bu nasıl bir kodlama kullanmam gerekiyor
ki internete girdigimde program internete girdigimi
anlasın ve internetten çıktıgımda program anlayıp
saymayı bıraksın..
Cevap ve Önerilerinize açığım..
Teşekkürler.......
Kopyalanmayı önlemen çok zor. Ama bunu geciktirmeyi, yada kopyalamayı sağlayıp, programı çalıştırmalarını engelleme çalışması yapabilirsin. Tabi bunlar kısa vadede fayda sağlar. Bunun içi mesela Registrayda anahtar yazabilirsin. Yada çalışma anında herhangi bi dizin içine (ben genelde windows'u kullanırım) attığın herhangi bir dosyada, herhangi bir satırı kontrol ederim. Bir çeşit *.ini gibi. HDD'im uçmuş olmasaydı örnek atardım (bkz CevizForum.Donanım )
Program aynı anda 1 kez çalışsın istiyosan kaynak koda (source);
CreateMutex(nil,FALSE,'Ceviz');
if GetLastError = ERROR_ALREADY_EXISTS then begin
ShowMessage('2 kere çalıştırdınız!');
Halt(0);
end;
// eğer Windows oturumunda sadece 1 kere çalışsın istiyosan,
procedure TForm1.FormShow(Sender : TObject);
var ceviz1 : integer;
ceviz2 : string;
begin
if GlobalFindAtom('THIS_IS_SOME_OBSCUREE_TEXT') = 0 then
ceviz1 := GlobalAddAtom('THIS_IS_SOME_OBSCUREE_TEXT')
else
begin
ceviz2 := #10 + #13;
ShowMessage('versiyon her Windows oturumunda yanlızca bir kere çalışır.' + ceviz2 + 'REGISTER !!');
Close;
end;
end;
İnternete bağlı olup olmadığını anlamak içinse, TCP componenti koy sayfana ve bunu kontrol edecek olan button veya timer 'a (yad her ikisine dolaylı olarak :) )
if (TCP1.LOCALIP='0.0.0.0') or (TCP1.LOCALIP='127.0.0.1') then
begin
// İnternete bağlı değilken yapacakların
end
else
begin
// İnternete bağlı iken yapacakların
end;
Bu varyasyonları çoğaltmak mümkün. Yazdıklarımda hata olma olasılığı var, çünkü HDD'im şuanda çöpte!
Kolay gelsin...
Extra bi durumda Mailleşebilirizde :)
hmustak@ceviz.net
extra life
11/02/2003, 00:14
selam hmustak;
Yolladığın cevap için teşekkürler, yalnız bir sorum
daha olacak. Tcp componentinden bahsettin. Ben delphi
5 kullanıyorum view-->components list'ten Ttcp diye aradım
fakat böyle bir componente rastlamadım. Hatta componentleri
teker teker gözden geçirdim
Acaba bu tcp componenti eklenti bir komponent olabilirmi
eklentiyse bu componenti nerden bulabilirim.
Teşekkurler.....
Bu Delphi5 de de olacaktı yaw... Neyse yoksa da en kolay yollu yapan bir component buluruz Default gelen componentler arasında. Lakin öncelikle benim Yeni HDD'me kavuşmam gerek, bunun içinde bayramdan sonraki Ptesi yi beklemek gerek :) Geçici kullandığım HDD 2,1 GB olduğundan kuramıyorum delphiyi :) Haa bide dediğm gibi TCP değilde başka bir komponentde olabilir, ben öyle hatırlayıp yazdım.
Şöyle de bağlantıyı kontrol etmen mümkün, mantık yukarıda yazıyo zaten;
Forma NMEcho koy;
NMEcho1.LocalIP='0.0.0.0.' ise veya '127.0.0.1' ise bağlı değilsindir.
Aynı mantıklaTclientSocket de işine yarar zannediyorum
Orjinal mesajı gönderen hmustak
...Bu varyasyonları çoğaltmak mümkün. Yazdıklarımda hata olma olasılığı var, çünkü HDD'im şuanda çöpte...
hmustak@ceviz.net
:tabi:
Bence Programı 1 defa çalıştırmaktan kastı senin yazdığın kod değil hakan ağbi. arkadaş word gibi sistemde sadece 1 tane pence ile çalışacak bi program yazmak istiyor. bunu yapabilmek için program başlangıc koduna pencerenin hanlerini buldurup(handle yaratılmadan) sonra daha onceden bu handle varmı diye kontrol ettiriyodum eğer varsa program sonlanıyordu. (şimdi evde değilim kodları yazamıyorum Ama windows apileri yardım dosyasını kurcalarsa 3-5 saat içinde bulabilir:super: )
lojistik için teşekürler...
:super:
;)
Forum Yazılımı : vBulletin v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.