Ich stelle fest, dass alle vorherigen Antworten ältere Funktionen der Win32-Benutzerbibliothek verwenden, um dies zu erreichen. Ich denke, dass dies in den meisten Fällen funktionieren wird, aber im Laufe der Zeit weniger zuverlässig.
Nachdem ich dies nicht getan habe, kann ich Ihnen nicht sagen, wie gut es funktionieren wird, aber ich weiß, dass eine aktuelle Windows-Technologie eine bessere Lösung sein könnte: die Desktop Windows Manager-API .
DWM ist dieselbe Technologie, mit der Sie mithilfe der Taskleiste und der Task-Switcher-Benutzeroberfläche eine Live-Vorschau von Apps anzeigen können. Ich glaube, es hängt eng mit den Diensten des Remote-Terminals zusammen.
Ich denke, dass ein wahrscheinliches Problem, das auftreten kann, wenn Sie eine App dazu zwingen, ein untergeordnetes Element eines übergeordneten Fensters zu sein, das nicht das Desktop-Fenster ist, darin besteht, dass einige Anwendungsentwickler Annahmen über den Gerätekontext (DC), die Zeigerposition (Maus) treffen. Bildschirmbreiten usw., die zu unregelmäßigem oder problematischem Verhalten führen können, wenn sie in das Hauptfenster "eingebettet" werden.
Ich vermute, dass Sie diese Probleme weitgehend beseitigen können, indem Sie sich auf DWM verlassen, um die Übersetzungen zu verwalten, die erforderlich sind, damit die Fenster einer Anwendung zuverlässig im Containerfenster einer anderen Anwendung dargestellt und mit ihnen interagiert werden.
Die Dokumentation geht von C ++ - Programmierung aus, aber ich habe eine Person gefunden, die eine Open-Source-C # -Wrapper-Bibliothek erstellt hat: https://bytes.com/topic/c-sharp/answers/823547-desktop-window-manager-wrapper . Der Beitrag ist alt und die Quelle befindet sich nicht in einem großen Repository wie GitHub, Bitbucket oder Sourceforge. Daher weiß ich nicht, wie aktuell sie ist.