Bir uygulamayi kendi programimiz icinde calistirma,
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 143
- Kayıt: 15 Haz 2003 08:33
- Konum: Almaty, Kazakhstan
Bir uygulamayi kendi programimiz icinde calistirma,
Merhabalar,
Arkadaslar X bir program mevcut bu programi kendi programim icinde bir panel'e load edip calistirmam mumkunmu, yani TFrame nesnesi gibi dusunun uygulama kendi programim icinde bir panelde gozukecek,
Burhan Cakmak
Arkadaslar X bir program mevcut bu programi kendi programim icinde bir panel'e load edip calistirmam mumkunmu, yani TFrame nesnesi gibi dusunun uygulama kendi programim icinde bir panelde gozukecek,
Burhan Cakmak
dll olsa arabirim yazmak mümkün derdim ancak bana çok mumkun görünmedi bu dediğiniz. Sonuçta winexec yada shellexecute dediğiniz anda uygulama kendi formunu açaçak.
ha ama oturupta işletim sistemi dışında exeyi yürütmeyi emule edecek başlıca bir sistem geliştirirseniz neden olmasın. bu dediğimi yapacak adamda sanırım tr de en fazla 3-5 kişi çıkar.
ha ama oturupta işletim sistemi dışında exeyi yürütmeyi emule edecek başlıca bir sistem geliştirirseniz neden olmasın. bu dediğimi yapacak adamda sanırım tr de en fazla 3-5 kişi çıkar.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
@Burhan_ast
- Bu istediğin mümkün. Çalıştırdığın programın handle numarasını FindWindow ile bulduktan sonra şeklinde bir komutla kendi projendeki bir panel veya forma aktarabilirsin. Bundan sonra ilgili yazılım kapatılana kadar bu aktarıldığı sınırlar içinden dışarı çıkamaz.
- Bu istediğin mümkün. Çalıştırdığın programın handle numarasını FindWindow ile bulduktan sonra
Kod: Tümünü seç
SetParent( FindWindowileBuldugunHandle, ProgramindakiPanel.Handle);
bunu bilmiyordum. Öğrenmiş oldum.mrmarman yazdı:@Burhan_ast
- Bu istediğin mümkün. Çalıştırdığın programın handle numarasını FindWindow ile bulduktan sonraşeklinde bir komutla kendi projendeki bir panel veya forma aktarabilirsin. Bundan sonra ilgili yazılım kapatılana kadar bu aktarıldığı sınırlar içinden dışarı çıkamaz.Kod: Tümünü seç
SetParent( FindWindowileBuldugunHandle, ProgramindakiPanel.Handle);
peki çalıştırdığı exe show modal bir form gösterirse ne olacak. yani MDI form olarak söylediğin yapıyı canlandırabiliyorum ama genelde çoğu kişi modal tarz formlarla uygulama geliştiriyor ?
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
- kara_kule06
- Üye
- Mesajlar: 150
- Kayıt: 18 Nis 2006 02:15
- Konum: ankara/polatlı
- İletişim:
Form1 e bir adet buton ekleyin ve click olayına;
yazın. Ardından Windowsun Hesap makinesi Programını çalıştırın ve form1 deki butona basın. göreceksiniz çok yaralı bişey. Özellikle benim işime çok yarıyacağı kesin.
Teşekkürler Muharrem Hoca
Kod: Tümünü seç
Windows.SetParent(FindWindow('SciCalc',nil),Form1.Handle);

Teşekkürler Muharrem Hoca

İlim öğrenmek akıntıya karşı yüzmek gibidir. Ara verildiği zaman gerilenir...
-
- Üye
- Mesajlar: 143
- Kayıt: 15 Haz 2003 08:33
- Konum: Almaty, Kazakhstan
Kod calisiyor ama sadece hesap makinasi icin calisti
Merhabalar
kod gayet guzel calisiyor veya asagidaki kodda guzel calisiyor
Fakat soyle bir sorun var daha dogrusu ben Logo Unity veya Logo Tiger programini bu sekilde yapmak istiyorum ama malesef olmadi,
Seklinde denedim olmadi
malesef buda olmadi,
saygilar...
Kod: Tümünü seç
Windows.SetParent(FindWindow('SciCalc',nil),Form1.Handle);
Kod: Tümünü seç
Var
Handle : THandle;
begin
// WinExec('calc.exe', SW_SHOWNORMAL);
Handle := FindWindow('SciCalc', Nil);
Windows.Setparent( Handle, putty.Handle );
SetWindowPos(Handle, HWND_BOTTOM, 0, 0, 400, 200, 0);
Kod: Tümünü seç
Windows.SetParent(FindWindow('TIGER',nil),Form1.Handle);
Kod: Tümünü seç
Windows.SetParent(FindWindow('LENGINE1',nil),Form1.Handle);
saygilar...
Logo Unity veya Logo Tiger 'ın formunun handle'ini bulabilmen için pencere başlığını ve/veya pencere sınıfını bilmen gerekir. Bunun için WinSight gibi bir program kullanabileceğin gibi aşağıda vereceğim pencerelerin sınıf isimleri ve başlık bilgilerini listeleyen kodu uygulayacağın bir tali projeden de yardım alabilirsin. Bu koddaki parantez içinde göreceğin veri ClassName bilgisidir.
Kod: Tümünü seç
Procedure CalisanProgramlar( Liste:TStrings );
Var
Hand : THandle;
Baslik,
Sinif : array[0..255] of char;
begin
Liste.Clear;
Hand := Application.Handle;
while ( Hand > 0 ) do begin
GetWindowText(Hand, Baslik ,255);
GetClassName (Hand, Sinif,255);
If IsWindowVisible(Hand) or IsIconic(Hand) then
Liste.Add( Format('%.8d:(%s) %s', [Hand, Sinif, Baslik]) );
Hand := GetnextWindow(Hand, GW_HWNDNEXT);
end; // While
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
Var
Liste : TStringList;
begin
Liste := TStringList.Create;
CalisanProgramlar( Liste );
ShowMessage( Liste.Text );
Liste.Free;
end;
-
- Üye
- Mesajlar: 143
- Kayıt: 15 Haz 2003 08:33
- Konum: Almaty, Kazakhstan
TAplication seklinde bir bilgi geldi
Merhaba
01182030 : (SciCalc) Calculator
00657284 : (TAplication) TIGER
seklinde bir sonuc geldi, malesef TIGER v.s. seklinde olmadi,
tsk
01182030 : (SciCalc) Calculator
00657284 : (TAplication) TIGER
seklinde bir sonuc geldi, malesef TIGER v.s. seklinde olmadi,
tsk
işte sonuç almışsın. (application'u yanlış yazmışsın, aynı gördüğün şekilde yazarsan sonuç da alırsın) Diyeceksin ki
Kod: Tümünü seç
Windows.SetParent( FindWindow( PChar('TApplication'), Pchar('TIGER')) ,Form1.Handle);
-
- Üye
- Mesajlar: 143
- Kayıt: 15 Haz 2003 08:33
- Konum: Almaty, Kazakhstan
Kod calisti fakat
Merhaba
Tesekkur ederim kod calisti fakat,
seklinde yazdim fakat malesef Tiger
kendi kafasina gore hareket ediyor hesap makinasinda oldugu gibi Panelin icine hapis olmuyor
tsk...
Tesekkur ederim kod calisti fakat,
Kod: Tümünü seç
Windows.Setparent( FindWindow( PChar('TApplication'), Pchar('TIGER')), Panel1.Handle );

tsk...
Açılan penecereleri de kapabilirsin. Yapacağın tek şey alttaki pencerelerin de handle nolarını tespit mekanizması kurmak. Bir timer ile bunları dizginleyebilirsin. Ancak merak ettiğim bir husus var. Neden böyle bir yola başvuruyorsun ??? Boşuna vakit kaybediyorsun gibi geliyor tabi yol göstermek bizden uygulama kararı ve kararlılığı sizden, ona diyecek lafım yok.
-
- Üye
- Mesajlar: 143
- Kayıt: 15 Haz 2003 08:33
- Konum: Almaty, Kazakhstan
Evet sanirim haklisiniz,
Merhabalar,
Sanirim haklisiniz bosuna vakit kaybi olacak gibi, sebep su Tiger'a entegre bir rapor yazilimimiz var ve ayri bir program yaklasik 40-50 tane ozel rapor mevcut ve Fast Script ile kullanici program icinde kendi rapor yazabiliyor ve istedigi raporu yine scripte entegre ettigimiz excel componenti ile excele rapor alabiliyor veya mail atabiliyor v.s., tiger'i bu sekilde birlestirmek sureti ile surekli ekranlar arasinda gecisi onlemek istiyordum,
Saygilar
Burhan Cakmak
Sanirim haklisiniz bosuna vakit kaybi olacak gibi, sebep su Tiger'a entegre bir rapor yazilimimiz var ve ayri bir program yaklasik 40-50 tane ozel rapor mevcut ve Fast Script ile kullanici program icinde kendi rapor yazabiliyor ve istedigi raporu yine scripte entegre ettigimiz excel componenti ile excele rapor alabiliyor veya mail atabiliyor v.s., tiger'i bu sekilde birlestirmek sureti ile surekli ekranlar arasinda gecisi onlemek istiyordum,
Saygilar
Burhan Cakmak