Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Windows API / MS.NET Framework API (https://www.delphipraxis.net/20-library-windows-api-ms-net-framework-api/)
-   -   Delphi Fremde Anwendung in meiner Anwendung laufen lassen? (https://www.delphipraxis.net/48214-fremde-anwendung-meiner-anwendung-laufen-lassen.html)

phlux 22. Jun 2005 10:20


Fremde Anwendung in meiner Anwendung laufen lassen?
 
Hallo!

Da mir gerade langweilig ist habe ich gedacht, schreib ich mal einen Eintrag für die CodeLib..
Also es geht darum, das man fremde Anwendungen in seine eigene Anwendung einsperren kann, so das es aussieht als ob sie ein MDI-Child der eigenen Anwendung wären.

Viel zu zaubern gibts da nicht, man muss einfach nur das Handle des Fenster finden, was man "einsperren" möchte und dann mittels SetParent das ParentWindow der fremden Anwendung auf das Handle der eigenen Form/Panels usw. umbiegen. Danach noch das obligatorische SW_MAXIMIZE ausführen, damit die Anwendung sich auch an die neue Form anpasst.

Hier jetzt der Code:

Delphi-Quellcode:
var
  hNotepad: hWnd; //Handle auf das Window welches man einsperren möchte

begin
  hNotepad := FindWindow('notepad', nil); //In diesem Fall sperren wir das gute alte Notepad ein
  Windows.SetParent(hNotepad, Handle); //Wir setzen das Parent mit Windows.SetParent, da ein Aufruf
                                        //von SetParent zur Folge hätte, dass wir die Methode von
                                        //TWinControl aufrufen würden, was wir nicht wollen
  ShowWindow(hNotepad, SW_MAXIMIZE); //Einmal ShowWindow mit SW_MAXIMIZE als Parameter damit das Fenster
                                     //sich über die ganze Form erstreckt
end;
Das wars auch schon :???:

mfg phlux :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz