2 .exen Binden
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Marcus Gräfe.
-
-
damit kannst du EXE in eigene anbinden:
vbarchiv.net/tipps/tipp_1794-n…-anwendung-einfangen.html -
Bei mir kommen 2 fehler :_
syntaxfehler bei
Panel container wurde nicht klar deklariert!
Mein kompletter quelltext siehst so aus!
VB.NET-Quellcode
- 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
- 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
-
-
@l3x4nd3r schrieb:
Bei mir kommen 2 fehler :_
syntaxfehler bei
Panel container wurde nicht klar deklariert!
Mein kompletter quelltext siehst so aus!
VB.NET-Quellcode
- Imports System.Runtime.InteropServices
- Public Class Form1
- '''
- ''' Die Klasse beinhaltet die benötigten Api-Funktionen und Konstanten.
- '''
- 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.
- _
- 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.
- _
- 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
- '''
- ''' Die Prozedur startet die übergebene Anwendung und setzt sie in die aufrufende Form.
- '''
- ''' bspw. notepad.exe
- ''' Panel-Control, in das die Anwendung eingebettet werden soll
- 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
- ByVal e As System.EventArgs) Handles Button1.Click
- ' Dateiname des Editors
- Const APP_NAME As String = "notepad.exe"
- ' Prozedur mit dem Dateiname und das benötigte Anzeigefenster aufrufen.
- SetApplicationAsChild(APP_NAME, PanelContainer)
- End Sub
- End Class
Dort wo der _ ist, den haste vergessen!
2. Fehler, du hast kein Panel auf der Form
Probiers damit:
VB.NET-Quellcode
- Imports System.Runtime.InteropServices
- Public Class Form1
- '''
- ''' Die Klasse beinhaltet die benötigten Api-Funktionen und Konstanten.
- '''
- 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.
- _
- 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.
- _
- 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
- '''
- ''' Die Prozedur startet die übergebene Anwendung und setzt sie in die aufrufende Form.
- '''
- ''' bspw. notepad.exe
- ''' Panel-Control, in das die Anwendung eingebettet werden soll
- 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 _
- ByVal e As System.EventArgs) Handles Button1.Click
- ' Dateiname des Editors
- Const APP_NAME As String = "notepad.exe"
- ' Prozedur mit dem Dateiname und das benötigte Anzeigefenster aufrufen.
- SetApplicationAsChild(APP_NAME, PanelContainer)
- End Sub
- End Class
Nurnoch ein Panel auf die Form ziehen, dan sollte es qehen (habs nicht getestet, ist freikopf ) -
-
agund schrieb:
Wieso Binden???
Du kannst die EXE auch nachträglich oder zu einem Zeitpunkt deiner Wahl einfach starten.
Mit Shell(C:/....exe)
kann du jederzeit externe Programme mit deinem Programm starten. -
-
-
Da das hier verdächtig nach Virusprogrammierung riecht, schließe ich den Thread hiermit. Gelöscht wird er nicht, denn vielleicht hast du (@Threadersteller) ja wirklich "gute" Absichten. Da die Lösung schon gepostet wurde, sollte eine Schließung in dem Fall kein Problem darstellen.
-
Ähnliche Themen
-
2 Benutzer haben hier geschrieben
- Gast (9)
- Marcus Gräfe (1)