Buongiorno
mi trovo il seguente problema:
sto realizzando un'applicazione VB-NET che mi deve lanciare all'interno di un form o anche di un panel un EXE realizzato con VB6, la cosa strana è che se provo a lanciare qualsiasi exe tipo calc notepad o anche qualsiasi altro software questo mi si aggancia tranquillamente all'interno del panel o del form....tutto ciò però non accade con un mio progetto fatto in VB6 nel senso che lo lancia ma esternamente al panel o form.
Pensavo fosse un problema del software VB6 quindi ho creato un banale progetto con un solo form e un botton...ma non cambia niente.
Vi posto il codice che utilizzo:
Imports System.Diagnostics.Process
Imports System.Runtime.InteropServices
Imports System.Threading
Declare Auto Function SetParent Lib "user32.dll" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Integer
Declare Auto Function SendMessage Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
Declare Auto Function FindWindow Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
Private Const WM_SYSCOMMAND As Integer = 274
Private Const SC_MAXIMIZE As Integer = 61488
Private proc As Process = New Process()
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
proc = Process.Start("notepad.exe")
proc.WaitForInputIdle()
Thread.Sleep(1000)
SetParent(proc.MainWindowHandle, Panel1.Handle)
Thread.Sleep(1000)
SendMessage(proc.MainWindowHandle, WM_SYSCOMMAND, SC_MAXIMIZE, 0)
Me.BringToFront()
end sub
Grazie