exe içine mpeg gömme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
csyasar
Üye
Mesajlar: 644
Kayıt: 25 Şub 2004 10:14
Konum: Tokat

exe içine mpeg gömme

Mesaj gönderen csyasar » 05 Ağu 2004 01:28

programımın içine nasıl mpeg dosyası gömerim. gömeceğim dosya 300 mb civarında. kitlenmeden sorunsuz nasıl çalıştırırım.

dosya gömmedeki mantık: kimsenin izlemesini istemiyorum. programa şifre koyacağım ve programımdan izleteceğim.

doganzorlu
Kıdemli Üye
Mesajlar: 395
Kayıt: 22 Tem 2004 08:15
Konum: İzmir
İletişim:

Mesaj gönderen doganzorlu » 05 Ağu 2004 02:26

Selam,

Daha önce uygulama registration bilgisini .exe nin sonuna eklemiştim. Belki size de bir fikir verecektir. Uygulamanızı hazırlayın ve build edin. Exe büyüklüğünü tespit edin ve uygulama içindeki bir constant değişkene bunu koyup (integer olacak bu sayede .exe size ı değişmeyecek) yeniden derleyin. Yazacağınız bir program oluşturacağı yeni bir dosyaya önce .exe dosyasını, ardından de mpeg dosyasını koyacak. Yani arka arkaya. .exe yapısı itibarıyla zaten işletilebilir kodların bittiği yeri biliyor olacaktır.

Peki bu yeni exe içindeki kodlar nasıl çalışacak ?

Öncelikle source kodlarıyla beraber bir mpeg oynatabilen media componenti edineceksiniz. (Örneğin http://swiss.torry.net/vcl/mmedia/video/mpeg2lib.zip, freeware) Daha sonra bu kütüphaneye .exe yi açtırıp, daha önce constant a koyduğunuz ofsetten itibaren mpeg i oynatmasını söyleyeceksiniz..

Yapmaya çalıştığınız iş kolay bir iş değil.. Bunu yapabilmek için bilmeniz gerekenler;

1. MPEG-2 sıkıştırma alogitmaları (bunu component halledecek)
2. DirectX (Ekrana görüntüyü vermek için normal draw rutinleriyle yüksek hızlı görüntüleri işleyemezsiniz, yine yukarda verdiğim bileşenle beraber nasıl kullanacağınızı gösteren bir kod geliyor)


Hepsi bu.. Hatta çok uğraşmayıp yukarda verdiğim kodu biraz değiştirerek de bunu hızla üüretebilirsiniz...

Kolay gelsin..
Doğan Zorlu, İzmir

------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)

Arifceylan28
Üye
Mesajlar: 298
Kayıt: 19 Tem 2004 12:45
Konum: Giresun/Samsun

Mesaj gönderen Arifceylan28 » 05 Ağu 2004 02:39

Maşallah Doğan Zorlu abim.

Kullanıcı avatarı
futbolcu
Üye
Mesajlar: 129
Kayıt: 02 Tem 2003 07:33
Konum: Ankara

Mesaj gönderen futbolcu » 05 Ağu 2004 06:21

Hocam verdiğiniz linkte bir virgül fazla olmuş :)
http://swiss.torry.net/vcl/mmedia/video/mpeg2lib.zip olarak yazayım da kolaylık olsun.

Benim de nacizane bir önerim olacak;
malumunuz exe nin çok şişkin olması çok şık sonuçlar vermiyor..
Bu durumda ek dosyanın kullanıcı makinesinin
C:\Program Files\Common Files\program_adı\dosya.dat
dizinine kopyalanmasını sağlamak... programın exesi de
C:\Program Files\program_adı\program.exe dizininde olması gerek.
Böyle çalışan bir çok büyük program biliyorum.

selamlar
Bilgi çoğaldıkça krallar ölür

doganzorlu
Kıdemli Üye
Mesajlar: 395
Kayıt: 22 Tem 2004 08:15
Konum: İzmir
İletişim:

Mesaj gönderen doganzorlu » 05 Ağu 2004 09:35

Selam,

Kod: Tümünü seç

malumunuz exe nin çok şişkin olması çok şık sonuçlar vermiyor.. 
Bu belirttiğiniz, exe nin tümünün çalıştırılabilir kodlardan oluştuğu durumda geçerlidir. Oysa önerdiğim yöntemde exe nin büyümesi diye birşey olmayacak ki. İşletim sistemi için zaten exe orjinali kadar olacak. Zira çalıştırılabilir kodu sona kadar taramayacaktır sistem. Ama eğer bu exe nin tümü işletilebilir kodlar olsaydı işte o zaman hapı yutmuştunuz.. Ama yine de çok fazla meraklı birisi oturup bu exe nin yapısını analiz edip birleştirdiğimiz yerden ayırıp mpeg i izleyebilir. Ona karşı da bir güvenlik yazılabilir (des algoritmalarıyla falan) ama bu böyle pat diye olamayacak kadar zor bir iş üstelik performans konusunda ciddi sorunlar oluşacaktır.

Kolay gelsin,
Doğan Zorlu, İzmir

------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)

Cevapla