Delphi Can
Harici exeyi child/modal form olarak çalıştırmak - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6)
+--- Konu Başlığı: Harici exeyi child/modal form olarak çalıştırmak (/showthread.php?tid=5090)



Harici exeyi child/modal form olarak çalıştırmak - bydelphi - 14-07-2020

Merhabalar ,

  Harici bir uygulamayı, kendi uygulamam içerisinden shellexecute veya winexec gibi bir methodla  mdichild form veya modal form olarak cağırabilirmiyim.
  Yani harici bir exeyi kendi uygulamamın bir formu gibi davrandırabilirmiyim.


Cvp: Harici exeyi child/modal form olarak çalıştırmak - vkamadan - 14-07-2020

(14-07-2020, Saat: 16:44)bydelphi Adlı Kullanıcıdan Alıntı: Merhabalar ,

  Harici bir uygulamayı, kendi uygulamam içerisinden shellexecute veya winexec gibi bir methodla  mdichild form veya modal form olarak cağırabilirmiyim.
  Yani harici bir exeyi kendi uygulamamın bir formu gibi davrandırabilirmiyim.

Merhaba, 
SetParent API si ile handle ını bildiğiniz bir pencere uygulamasının yine handle ını bildiğiniz bir başka pencere uygulamasını parent almasını sağlayabilirsiniz.
https://stackoverflow.com/questions/796883/how-to-shell-to-another-app-and-have-it-appear-in-a-delphi-form


Örn , ekranda bir notepad.exe uygulaması açık olsun , ilgili uygulamanın Handle ını FindWindow API si ile elde edip parent ini kendi uygulamamız olarak değiştirmek için ;
procedure ParentAyarla;
var
NotepadHandle : Integer ;
begin
  NotepadHandle := FindWindow( 'Notepad', nil );
  WinApi.Windows.SetParent( NotepadHandle, Handle );
end;

Yukarıda paylaştığım bağlantıda kendi uygulamanız içinde diğer bir uygulamayı başlatmayı ve uygulama başlayana kadar sistemin beklemesini ardından uygulamanın pencere bilgisin alıp SetParent ile parent i kendi uygulamanız yapmayı inceleyebilirsiniz.


Cvp: Harici exeyi child/modal form olarak çalıştırmak - bydelphi - 14-07-2020

(14-07-2020, Saat: 17:23)vkamadan Adlı Kullanıcıdan Alıntı:
(14-07-2020, Saat: 16:44)bydelphi Adlı Kullanıcıdan Alıntı: Merhabalar ,

  Harici bir uygulamayı, kendi uygulamam içerisinden shellexecute veya winexec gibi bir methodla  mdichild form veya modal form olarak cağırabilirmiyim.
  Yani harici bir exeyi kendi uygulamamın bir formu gibi davrandırabilirmiyim.

Merhaba, 
SetParent API si ile handle ını bildiğiniz bir pencere uygulamasının yine handle ını bildiğiniz bir başka pencere uygulamasını parent almasını sağlayabilirsiniz.
https://stackoverflow.com/questions/796883/how-to-shell-to-another-app-and-have-it-appear-in-a-delphi-form


Örn , ekranda bir notepad.exe uygulaması açık olsun , ilgili uygulamanın Handle ını FindWindow API si ile elde edip parent ini kendi uygulamamız olarak değiştirmek için ;
procedure ParentAyarla;
var
NotepadHandle : Integer ;
begin
  NotepadHandle := FindWindow( 'Notepad', nil );
  WinApi.Windows.SetParent( NotepadHandle, Handle );
end;

Yukarıda paylaştığım bağlantıda kendi uygulamanız içinde diğer bir uygulamayı başlatmayı ve uygulama başlayana kadar sistemin beklemesini ardından uygulamanın pencere bilgisin alıp SetParent ile parent i kendi uygulamanız yapmayı inceleyebilirsiniz.


Uygulamaların 32/64 bit olmaları sanırım farketmez diye düşünüyorum ama denicem.
Çoooook teşekkür ederim paylaşımınız için.