Vb.net 我可以在visual basic窗体中嵌入另一个正在运行的exe吗?
我开始尝试在表单中嵌入另一个.exe。我设法运行了另一个程序,并在窗体面板中使用它。是否有办法将已运行的exe放入此面板中Vb.net 我可以在visual basic窗体中嵌入另一个正在运行的exe吗?,vb.net,Vb.net,我开始尝试在表单中嵌入另一个.exe。我设法运行了另一个程序,并在窗体面板中使用它。是否有办法将已运行的exe放入此面板中 Public Class Form1 Declare Auto Function SetParent Lib "user32.dll" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Integer Declare Auto Function SendMessage Lib &q
Public Class Form1
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
Dim proc As Process
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
proc = Process.Start("C:\WINDOWS\notepad.exe")
proc.WaitForInputIdle()
SetParent(proc.MainWindowHandle, Panel1.Handle)
End Sub
End Class
代码变成这样。notepad.exe需要运行,启动时会将notepad.exe嵌入主窗体。非常感谢
Public Class Form1
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
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim proc = Process.GetProcessesByName("notepad").FirstOrDefault()
If proc IsNot Nothing Then
SetParent(proc.MainWindowHandle, Panel1.Handle)
End If
End Sub
End Class
您是否尝试了
Process.getProcessByName(“记事本”)
而不是Process.Start?我将如何更改它,如果我更改它,我会出现此错误。无法将“Process()”类型的值转换为“Process”。@AlexB.dim proc=Process.getProcessByName(“记事本”).FirstOrDefault()如果proc不是空的,则…
。您还需要MoveWindow
或SetWindowPos
或类似工具。预计会有一些恼怒的反应。顺便说一句,您应该使用
属性来声明函数,而不是使用声明自动
版本。