vb.net在表单中启动应用程序

前端之家收集整理的这篇文章主要介绍了vb.net在表单中启动应用程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在面板中运行应用程序或在我的应用程序中运行某个应用程序.这是一个模拟器前端.您浏览游戏,然后当您选择一个游戏时,它会启动模拟器.我找到了以下代码并将其改编为我的项目
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 Const WM_SYSCOMMAND As Integer = 274
    Private Const SC_MAXIMIZE As Integer = 61488
    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)
        SendMessage(proc.MainWindowHandle,WM_SYSCOMMAND,SC_MAXIMIZE,0)
    End Sub
End Class

如果我用记事本,甚至zsnesw.exe尝试它可以正常工作,但如果我尝试将一些参数传递给zsnesw它有点吓坏了我必须重新启动计算机(我无法切换应用程序甚至打开任务经理).

此外,即使它确实有效,弹出的开始菜单就像我切换到另一个应用程序一样.这是我试图避免的一种,因为我的应用程序是全屏幕.

我搞定了!
Dim proc As Process
        proc = Process.Start(emuPath + "zsnesw","-m """ + selGame.romPath + """")
        proc.WaitForInputIdle()
        SetParent(proc.MainWindowHandle,Me.Panel1.Handle)
        SendMessage(proc.MainWindowHandle,0)
        Me.BringToFront()

问题1:我错误地传递了参数.我试图使用Process.StartInfo.Arguments.由于某种原因没有工作.在Process.Start中使用逗号可以正常工作.

问题2:我添加了Me.BringToFront()以再次隐藏开始菜单.

原文链接:https://www.f2er.com/vb/255908.html

猜你在找的VB相关文章