これは、ピクチャーボックス内で別のアプリケーションを実行するために使用したサンプルコードです。
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
したがって、VB2010 WindowsForm内で別のアプリケーションをホストすることができ、正常に動作します。しかし、問題は、Windows7では、Windowsが許可を要求することです(EXEの実行を許可するかどうかに関係なく)。[許可]ボタンをクリックすると、exeアプリケーションは、PictureBoxの子としてではなく、独自のウィンドウで開きます。
Windowsが許可を求めるとき、SetParent()API呼び出しをスキップしていると思います。私は本当にどんな提案にも感謝します。
ありがとう :)