Mit nachfolgendem Beispiel wird gezeigt, wie sich eine fremde Anwendung (hier notepade.exe - Windows Editor) starten und in die eigene Anwendung einbetten lässt. Erstellen Sie ein neues Projekt und platzieren auf die Form einen Button (Button1), sowie ein Panel-Control (PanelContainer). Das Panel-Control dient als Container-Objekt für die einzubettende Anwendung. ' COM-Interop einbinden. Imports System.Runtime.InteropServices Public Class Form1 ''' <summary> ''' Die Klasse beinhaltet die benötigten Api-Funktionen und Konstanten. ''' </summary> Public Class Win32Api ' Die Api Funktion ShowWindow zeigt ein Fenster auf verschiedene Art an. ' ' Rückgabewert: ' Ungleich 0 wenn das Fenster vor dem Funktionsaufruf ' sichtbar war, sonst 0. ' Übergabewerte: ' hWnd: Handle des Fensters. ' nCmdShow: Konstante zum anzeigen des Fensters. <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _ Public Shared Function ShowWindow( _ ByVal hWnd As IntPtr, _ ByVal nCmdShow As Integer) As Boolean End Function ' Die Api Funktion SetParent setzt ein neues Eltern-Fenster für ein ' bestimmtes Kind-Fenster. ' ' Rückgabewert: ' Wenn der Aufruf erfolgreich war wird das Handle des Eltern-Fensters ' zurückgegeben sonst 0. ' Übergabewerte: ' hWndChild: Handle des Kind-Fensters. ' hWndNewParent: Handle des Eltern-Fensters. <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _ Public Shared Function SetParent( _ ByVal hWndChild As IntPtr, _ ByVal hWndNewParent As IntPtr) As IntPtr End Function ' Das Fenster wird maximiert angezeigt. Public Const SW_MAXIMIZE As Int32 = 3 ' (SW_...) usw. End Class ''' <summary> ''' Die Prozedur startet die übergebene Anwendung und setzt sie in die aufrufende Form. ''' </summary> ''' <param name="CallingApplication">bspw. notepad.exe</param> ''' <param name="p">Panel-Control, in das die Anwendung eingebettet werden soll</param> Private Sub SetApplicationAsChild(ByVal CallingApplication As String, _ ByVal p As System.Windows.Forms.Panel) ' Fehlerbehandlung einschalten. Try ' Process starten ( ... notepad.exe ... ). Dim hProcess As System.Diagnostics.Process = _ System.Diagnostics.Process.Start(CallingApplication) ' Siehe (... WaitForInputIdle ...) hProcess.WaitForInputIdle() ' Parent Fenster setzen. Win32Api.SetParent(hProcess.MainWindowHandle, p.Handle) 'Fenster anzeigen. Win32Api.ShowWindow(hProcess.MainWindowHandle, Win32Api.SW_MAXIMIZE) Catch ex As Exception ' Fehlerbeschreibung bei auftretenden Fehler anzeigen. MessageBox.Show(ex.Message.ToString(), "Info") End Try End Sub Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' Dateiname des Editors Const APP_NAME As String = "notepad.exe" ' Prozedur mit dem Dateiname <APP_NAME> und das benötigte Anzeigefenster aufrufen. SetApplicationAsChild(APP_NAME, PanelContainer) End Sub End Class Dieser Tipp wurde bereits 34.561 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevGraph (VB/VBA) Grafische Auswertungen Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |