vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2018
 
zurück
Rubrik: Verschiedenes / Sonstiges   |   VB-Versionen: VB.NET02.04.08
Notepad.exe ( Editor ) in VB Oberflaeche integrieren - Anwendung "einfangen"

Das Beispiel zeigt, wie sich der Windows Editor in die aufrufende Programmoberfläche einbetten lässt.

Autor:   Heinz PrelleBewertung:     [ Jetzt bewerten ]Views:  29.678 
www.visual-basic5.deSystem:  WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

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 29.678 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Aktuelle Diskussion anzeigen (10 Beiträge)

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!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.
 
   

Druckansicht Druckansicht Copyright ©2000-2018 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel