Uruchamianie innej aplikacji w Picturebox
To jest przykładowy kod, którego użyłem do uruchomienia innej aplikacji wewnątrz Picturebox:
Imports System.Diagnostics
Imports System.Runtime.InteropServices
Public Class Form1
<DllImport("user32.dll")> Public Shared Function SetParent(ByVal hwndChild As IntPtr, ByVal hwndNewParent As IntPtr) As Integer
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Process1 As New Process
Process1.StartInfo.FileName = "notepad.exe"
Process1.Start()
Do Until Process1.WaitForInputIdle = True
Application.DoEvents()
Loop
SetParent(Process1.MainWindowHandle, PictureBox1.Handle)
End Sub
End Class
W ten sposób mogłem hostować inną aplikację w moim VB2010 WindowsForm i działa dobrze. Ale problem polega na tym, że w Windows7 Windows pyta o pozwolenie (czy chcesz zezwolić na uruchamianie EXE). Po kliknięciu przycisku „Zezwól” aplikacja exe otworzy się w swoim własnym oknie, a nie jako dziecko PictureBox
Myślę, że gdy system Windows prosi o pozwolenie, pomija wywołanie API SetParent (). Naprawdę doceniam wszelkie sugestie.
Dzięki :)