2008-11-06 13 views
8

Ich schreibe eine Anwendung, und ich möchte in der Lage sein, eine andere Anwendung darin anzuzeigen. (Denken Sie wie ein Windows-Formular mit einer kleinen Box oder einer Registerkarte, die eine völlig separate Anwendung anzeigt.)Öffnen einer Anwendung in einem Formular - C# oder VB.NET

Ist das etwas, was getan werden kann? Wenn ja, kann irgendjemand etwas dazu sagen, wie man es macht?

Ich bin auf der Suche nach etwas in der C# - oder VB.NET-Welt.

DANKE!

Antwort

10

Sie benötigen ein hWnd (handle) Fenster von einer anderen Anwendung. Dann benötigen Sie eine hWnd Container-Steuerelement in Ihrer Anwendung (System.Windows.Forms.Control.Handle -Eigenschaft).

Dann brauchen Sie eine Win32API-Funktion SetParent, und das alles, was Sie brauchen. Auf der SetParent-Seite ist wenig Probe, die tun sollte, was Sie brauchen.

+0

Natürlich erfordert dies, dass das Fenster, das Sie einbetten möchten, bereits existiert - andernfalls könnten Sie es nicht behandeln. Aber es ist immer noch ziemlich glatt: upvote. –

+0

Sie müssen immer das Fenster existieren, wenn Sie es in Ihren Container einbetten möchten. Hast du irgendwann etwas "A" in etwas "B" eingefügt, wenn "A" nicht existierte :)? Die Frage ist "wie kann ich das Fenster finden, das ich will". Sie können "Process.MainWindowHandle" -Eigenschaft oder "EnumWindows" Win32API-Funktion verwenden. – TcKs

Verwandte Themen