Form içine Exe Eklemek..

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
HaokaH
Üye
Mesajlar: 14
Kayıt: 02 Nis 2006 06:37
Konum: Adana/C.University
İletişim:

Form içine Exe Eklemek..

Mesaj gönderen HaokaH »

Arama yaptIm forumda, yanliz kimileri demiş ki exe içine exe gömme veya form içine exe gömme..
Benim istedigim sadece, form 'da örnegin windowsdaki hesap makinasini calistirmak, yeni bir sayfada shellapi kullanarak acmak istemiyorum..
Yani kod olarak birşeyde gömmek istemiyorum sadece formda acilmasini istiyorum uygulamanin.. Tek bir elden yönetimi saglamak cok saglikli olacak..
KIsacasI program form üzerinden calisicak..
Bu konuda bilgisi olan var mi?
ProgramcIlIk; Kendini ifade edebilme yetenegidir!
lodos
Üye
Mesajlar: 28
Kayıt: 29 Ara 2006 10:32

Mesaj gönderen lodos »

bir nevi includes tam olaak bilmiyorum ben
Kullanıcı avatarı
HaokaH
Üye
Mesajlar: 14
Kayıt: 02 Nis 2006 06:37
Konum: Adana/C.University
İletişim:

Mesaj gönderen HaokaH »

Vallahi 41 kişi okumuş ama 1 kişi yazmış..
Bende cok denedim sayIn lodos ama cIkmazdayIm suan.. Ilginiz icin tesekkür ederim..
ProgramcIlIk; Kendini ifade edebilme yetenegidir!
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

Exe yi forma gömme diye bişey görmedim hiç. Ancak ActiveX lerle mümkün böyle şeyler..

viewtopic.php?t=18855&highlight=exe+g%F6m
DeveloperToolKit

..::|YeşilMavi|::..
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- @HaokaH Serzenişleri bırakalım. :o İşimize bakalım.

- Okuyan okur, vakti olan cevap yazar. Bu konu özel bir konu olduğundan soru herkesin ilgisini çekebilir. Bilen olsaydı şimdiye kadar yazardı zaten.

- Cevap ise aşağıda... :idea:

- Açık Windows Hesap makinesi varsa, Form1 isimli formuna bağlanır...

Kod: Tümünü seç

Var
  Handle : THandle;
begin
  Handle := FindWindow('SciCalc', Nil);
  Windows.Setparent( Handle, Form1.Handle );
end;
Resim
Resim ....Resim
Kullanıcı avatarı
HaokaH
Üye
Mesajlar: 14
Kayıt: 02 Nis 2006 06:37
Konum: Adana/C.University
İletişim:

Mesaj gönderen HaokaH »

SayIn mrmarman,
Oncelikle tesekkür ederim.. Elbet isteyen yazar veya yazmaz ama hani insanlar beklenti icinde olunca ve burada yazIsmak/tartIsmak icin varIz diye bir düsünce yapIsInda olunca malesef bu cöküntü yaratIyor.. Ama sagolun ki ilgileniyorsunuz..
Benim sadece verdigim örnekti, yani örnegin winamp'ida kendi formumuza yerlestirebilmek ve kendi formumuz üzerinden calistirmak.. Bu da bir örnek tabiki..
Sizin verdiginiz kodu formun Create olayIna yazdIm bir yandan da acIk diye belirttiginiz durumuda gerceklestirdim yani Windows Hesap MakinasI acIktI o an ama olmadI.. Button'ada yerlestirdim yine olmadI..

SayIn lazio,
Anlatmak istedigim şudur ki, örnegin bir hesap makinasI örnegin bir paint gibi ufak tefek programlari kendi yaptigim projedeki forma yerlestirmek(embed-gömmek degil) yani sadece benim formum üzerinden calisicak hepsi bu kadar formumda gözüksün yeter, kodlari ile alakam olsun istemiyorum.. Amacim exe patlatmak felan degil zaten.. Bunu yapmamdaki gereksinimi soracak olursanIz, dedigim gibi tek elden işlemlerin yapilmasi.. Yani böyle birşey olursa, ben sIfIrdan bir putty(uzak makina erişim) programini formuma yerlestirmis vede tekrar buna benzer program yazmaktan kurtulmus olacagim.. Zaman kazanmIs olucagim yani..

Birde, lakin böyle birşey mümkün degil diye kesin birşeyler diyebilen varsa bende artIk ufaktan vede sIfIrdan böyle birsey yapmak durumunda kalicagim.. AraştIrmalarla felan yapabilirsek yapIcagIz..
UmarIm anlatabilmişimdir, hatam var ise kusura bakmayIn..
Tekrar Teşekkürler..
ProgramcIlIk; Kendini ifade edebilme yetenegidir!
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Hocam yanlışın olmasın. Kendim deneyip de gönderdim.

- Bence çalışmakta olan "Hesap Makinesi"nin ekran konumuyla ilgili bir sorunsal yaşıyorsun.

- Şunu test et...

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
Var
  Handle : THandle;
begin
  Handle := FindWindow('SciCalc', Nil);
  Windows.Setparent( Handle, Form1.Handle );
  SetWindowPos(Handle, HWND_BOTTOM, 0, 0, 600, 200, 0);
end;
- Buttona bastığında Windows Taskbar'dan HesapMakinesinin kaybolduğunu göreceksin. Eğer bu oluyorsa Form içine yerleşmiştir demektir.

- SetWindowPos ile bunu formun sol üst kısmına aldım... Şimdi böyle dene

- 600, 200 boyutlandırmadır. sen bunu uygun boyuta çekersin. Öylesine yazdım...
Resim
Resim ....Resim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

"Foruma gömmek" ten ve sorudan anladığım; örneğin windows un hesap makinası programının (xp de c:\windows\system32\calc.exe) çalıştırılarak forum üzerine (Muharrem hocamın cevabındaki gibi) dahil edilmesi. Sistemden calc.exe silinmişse ne olacak :?: Amaç sadece hesap makinası olayı ise hazır bileşenlerden (RxCalculate, RxEditCalc gibi) kullanmak en doğrusu :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@rsimsek

@HaokaH'ın meramını anladım. Verdiğim örnek sadece SciCalc için değil, window handle'i bulunabilen her pencere için geçerlidir.

- Parent olarak seçilen TForm, TPanel veya her hangi bir TWinControl MDI form benzeri bir yapıya kavuşarak verilen Window'un parent'i oluyor ve bünyesine alıyor.
Resim
Resim ....Resim
Kullanıcı avatarı
HaokaH
Üye
Mesajlar: 14
Kayıt: 02 Nis 2006 06:37
Konum: Adana/C.University
İletişim:

Mesaj gönderen HaokaH »

SayIn rsimsek,
Amac sadece hesap makinasI degil zaten hesap makinasi olsa hic ugrasmam 1 saatte yapar kodlarim.. O sadece örnekti..
İstediğim şey aslInda cok basit yani.. Ufak bir program var, ve benim projemdeki formumun üstünden calisicak.. Yani proje klasörünün içinde olucak bu program ve butona tikladigimda acilan MDI Child formun üzerinde olucak ve oradan calisicak.. Extradan programin ayri olarak calismasini istemiyorum zaten o da cok basit shellapi ekledigin zaman tIkIr tIkIr oluyor ama ayrI sayfada.. Ben ise formumda calismasini istiyorum.. shellapinin böyle bi güzelligi yok..

Zaten şuanki projem MDI Formlardan olusuyor..
En son HaokaH tarafından 01 Mar 2007 08:06 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
ProgramcIlIk; Kendini ifade edebilme yetenegidir!
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@HaokaH Konuya gelelim, verdiğim kodu çalıştıramadın mı hala ? :lol:
Resim
Resim ....Resim
Kullanıcı avatarı
HaokaH
Üye
Mesajlar: 14
Kayıt: 02 Nis 2006 06:37
Konum: Adana/C.University
İletişim:

Mesaj gönderen HaokaH »

Ne yalan söyliyim ki şimdi SayIn mrmarman,
Malesef..
ProgramcIlIk; Kendini ifade edebilme yetenegidir!
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Daha ne deyim... Çok basit bir kod dahi çalışmıyorsa yapacak bişey yok, bu işten vazgeç.

- Bir de aşağıdaki şekilde dene bakalım. Önce bir tane "Hesap Makinesi" çalıştırır sonra bu çalışanı içeriğine alır.

Download edip denemen için de Ref : http://rapidshare.com/files/18986079/Sc ... e.zip.html

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
Var
  Handle : THandle;
begin
  WinExec('calc.exe', SW_SHOWNORMAL);
  Handle := FindWindow('SciCalc', Nil);
  Windows.Setparent( Handle, Form1.Handle );
  SetWindowPos(Handle, HWND_BOTTOM, 0, 0, 400, 200, 0);
end;
- Bu arada FORM1.HANDLE kısmını kendi formuna göre değiştirmeyi ihmal etmiyoruzdur umarım :lol:
Resim
Resim ....Resim
cozturk
Üye
Mesajlar: 484
Kayıt: 15 Haz 2005 05:22

Mesaj gönderen cozturk »

Ben başka birşey soracağım. Şimdi dll hazırlarken dışarıdan kullanılacak bir fonksiyon tanımlıyoruz. ( export.. )

Bunun gibi bir uygulamayı derlerken dışarıdan kullanılabiliecek bazı fonksiyonlar tanımlasak bunları başka programlar kullanabilse böyle birşey nasıl yapılabilir.?

Sanırım mümkün. Windowstaki birçok uygulama birbiriyle haberleşiyor. fakat bir dll olmaksızın böyle birşey yapılabilir mi?
Kullanıcı avatarı
HaokaH
Üye
Mesajlar: 14
Kayıt: 02 Nis 2006 06:37
Konum: Adana/C.University
İletişim:

Mesaj gönderen HaokaH »

SayIn mrmarman,
Ilk verdigin kod ile ikincisinde degisiklik var bu yuzden olmamIs, suan verdiginiz calIsIyor.. Tesekkür ederim.. Ama hesap makinasInda calIsIyor suan.. ve tam istedigim gibi..

Kod: Tümünü seç

Var
  Handle : THandle;
begin
  WinExec('putty.exe', SW_SHOWNORMAL);
  Handle := FindWindow('Putty', Nil);
  Windows.Setparent( Handle, Putty.Handle );
  SetWindowPos(Handle, HWND_BOTTOM, 0, 0, 400, 200, 0);
 end;
Bu yukarIdaki gibi kendi programImI ekledigim zaman ise yine ayrI pencerede aciliyor.. Ama hesap makinasInIn acIldIgI gibi acmak istiyorum.. Dedigim gibi o örnekti sadece.. Derdimi anlatmak icindi..
ProgramcIlIk; Kendini ifade edebilme yetenegidir!
Cevapla