3

我知道这似乎是一个热门话题,但我无法将外部程序(与 VB 无关)嵌入到我的 VB.NET 项目中,我可以让记事本正确嵌入,但我终生无法获得这个其他程序嵌入,它确实加载并正确出现。

这就是我所拥有的。

至少我希望能够让它自动打开外部 EXE,然后将它停靠在我的项目中,或者甚至只是能够点击我的button1,让外部出现然后停靠到我的项目中。但我真的很想把它嵌入大声笑,我对这一切都非常陌生,所以请放轻松:3

PS:我尝试将应用程序添加为嵌入式资源。

Imports System.Runtime.InteropServices

Public Class Form1

    Private Const WM_SYSCOMMAND As Integer = 274
    Private Const SC_MAXIMIZE As Integer = 61488
    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 Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Run Notepad application inside Panel1 control
        Dim proc As Process
        proc = Process.Start("LLO.exe")
        proc.WaitForInputIdle()
        SetParent(proc.MainWindowHandle, Me.Panel1.Handle)
        SendMessage(proc.MainWindowHandle, WM_SYSCOMMAND, SC_MAXIMIZE, 0)

    End Sub

End Class
4

1 回答 1

0

您需要指定可执行文件的完整路径,例如:proc = Process.Start("C:\Path\To\LLO.exe"). 或者确保可执行文件与您的程序位于同一文件夹中。

于 2013-09-19T20:17:54.503 回答