vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Prozess starten und in eigene Anwendung einbinden 
Autor: Marcus W
Datum: 18.01.14 18:33

So, ich hab das jetzt wie folgt gelöst:

Public Class frmMain
  'benötigte APIs
  Private Declare Function SetParent Lib "user32.dll" (ByVal hWndChild As _
    IntPtr, ByVal hWndNewParent As IntPtr) As IntPtr
 
  Private Declare Function ShowWindow Lib "user32.dll" (ByVal hWnd As IntPtr, _
    ByVal flag As Integer) As IntPtr
 
  Public Declare Function MoveWindow Lib "user32" (ByVal hwnd As Int32, _
    ByVal x As Long, ByVal y As Long, _
    ByVal nWidth As Long, ByVal nHeight As Long, _
    ByVal bRepaint As Boolean) As Boolean
 
  'ShowWindow-Konstanten
  Private Const SW_NORMAL As Integer = 1
 
  'ProzessID des eingebetteten fensters merken
  Private intProgrammID As Integer
 
  Private Sub Starten
    StartProgramm("cmd.exe", TabPage1, intProgrammID)
  End Sub
 
  Private Sub Stoppen
    Try
      Process.GetProcessById(intProgrammID).Kill()
    Catch
    End Try
  End Sub
 
  Private Sub StartProgramm(ByVal Programm As String, ByVal Seite As TabPage, _
    ByRef ProgrammID As Integer)
      '<übergebene Parameter>
      'Programm = das Programm, das gestartet werden soll
 
      'Seite = die Seite eines TabControls, auf der das Programm angezeigt
       '       werden soll
 
      'ProgrammID = ProzessID des aufgerufenen Programms
      '             ByRef, um mit dem Aufruf des Programms der globalen Variable
      '             intProgrammID die ProzessID zu übergeben
      '             (wird in der Prozdur "Stoppen gebraucht)
      '</übergebene Parameter>
 
      Dim Handle As IntPtr 'MainWindowHandle des gestarteten Programms
 
      'Programm starten
      ProgrammID = Process.Start(Programm).Id
 
      'Warten, bis aufgerufenes Programm ein MainWindowsHandle hat
      Do
          Application.DoEvents()
      Loop Until Process.GetProcessById(ProgrammID).MainWindowHandle <> 0
 
      Handle = Process.GetProcessById(ProgrammID).MainWindowHandle
 
      'DOS-Box in Tabpage einbetten
      SetParent(Handle, Seite.Handle)
 
      'WindowState der DOS-Box auf "normal" setzen
      ShowWindow(Handle, SW_NORMAL)
 
      'DOS-Box auf TabPage zentrieren
      MoveWindow(Handle, 10, 8, 670, 440, True)
  End Sub
End Class
Im Beispiel könnte man das im Sub Starten abfackeln. Da ich aber 4 Programme starte, hab ich das über das Sub StartProgramm mit Parameterübergabe gemacht.

Die Subs Starten und Stoppen sind normalerweise Buttons. Der Lesbarkeit halber, habe ich hier auf die lange Button_Click(...)-Zeile verzichtet.

Gruß
Marcus

Beitrag wurde zuletzt am 18.01.14 um 18:39:03 editiert.

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Prozess starten und in eigene Anwendung einbinden7.410Marcus W13.01.14 21:09
Re: Prozess starten und in eigene Anwendung einbinden5.292killroy13.01.14 22:45
Re: Prozess starten und in eigene Anwendung einbinden5.282Marcus W14.01.14 19:38
Re: Prozess starten und in eigene Anwendung einbinden5.413Marcus W18.01.14 18:33
Re: Prozess starten und in eigene Anwendung einbinden5.300killroy20.01.14 13:13
Re: Prozess starten und in eigene Anwendung einbinden5.250Manfred X20.01.14 15:26
Re: Prozess starten und in eigene Anwendung einbinden5.138killroy20.01.14 22:45
Re: Prozess starten und in eigene Anwendung einbinden4.993catweazle2k324.04.14 13:41
Re: Prozess starten und in eigene Anwendung einbinden5.071Manfred X24.04.14 13:55
Re: Prozess starten und in eigene Anwendung einbinden5.120catweazle2k324.04.14 14:12
Re: Prozess starten und in eigene Anwendung einbinden5.011Marcus W24.04.14 14:12
Re: Prozess starten und in eigene Anwendung einbinden5.230Manfred X24.04.14 14:27
Re: Prozess starten und in eigene Anwendung einbinden4.997catweazle2k324.04.14 14:34
Re: Prozess starten und in eigene Anwendung einbinden5.155Manfred X24.04.14 14:43
Re: Prozess starten und in eigene Anwendung einbinden5.159catweazle2k324.04.14 15:01
Re: Prozess starten und in eigene Anwendung einbinden5.040powerzone300024.04.14 15:11
Re: Prozess starten und in eigene Anwendung einbinden4.942catweazle2k324.04.14 15:55
Re: Prozess starten und in eigene Anwendung einbinden4.981catweazle2k325.04.14 12:18
Re: Prozess starten und in eigene Anwendung einbinden4.975killroy25.04.14 12:45
Re: Prozess starten und in eigene Anwendung einbinden5.013Manfred X25.04.14 13:42
Re: Prozess starten und in eigene Anwendung einbinden5.121catweazle2k325.04.14 13:51
Re: Prozess starten und in eigene Anwendung einbinden5.045Manfred X25.04.14 14:06
Re: Prozess starten und in eigene Anwendung einbinden4.898catweazle2k325.04.14 14:18
Re: Prozess starten und in eigene Anwendung einbinden5.186Manfred X25.04.14 14:44
Re: Prozess starten und in eigene Anwendung einbinden4.928catweazle2k325.04.14 14:57
Re: Prozess starten und in eigene Anwendung einbinden4.892Manfred X25.04.14 15:30
Re: Prozess starten und in eigene Anwendung einbinden4.933catweazle2k325.04.14 15:50
Re: Prozess starten und in eigene Anwendung einbinden4.972Manfred X25.04.14 15:53
Re: Prozess starten und in eigene Anwendung einbinden4.955catweazle2k325.04.14 15:58
Re: Prozess starten und in eigene Anwendung einbinden5.006Manfred X25.04.14 16:06
Re: Prozess starten und in eigene Anwendung einbinden4.987catweazle2k325.04.14 16:10
Re: Prozess starten und in eigene Anwendung einbinden5.121Manfred X25.04.14 16:24
Re: Prozess starten und in eigene Anwendung einbinden5.176catweazle2k325.04.14 16:46
Re: Prozess starten und in eigene Anwendung einbinden4.986Manfred X25.04.14 17:02
Re: Prozess starten und in eigene Anwendung einbinden5.351Manfred X25.04.14 17:55
Re: Prozess starten und in eigene Anwendung einbinden4.997catweazle2k309.07.14 14:26

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 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