Einzelnen Beitrag anzeigen

Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#1

Fremde Anwendung in meiner Anwendung laufen lassen?

  Alt 22. Jun 2005, 10:20
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
Christian "phlux" Arndt
  Mit Zitat antworten Zitat