我想在面板內或應用程序內部運行應用程序。這是一個模擬器前端。你瀏覽遊戲,然後當你選擇一個遊戲時,它會啓動模擬器。我發現下面的代碼,它適用於我的項目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它那種怪胎和我必須重新啓動計算機(我無法切換應用程序,甚至無法打開任務管理器)。
此外,即使它起作用,開始菜單也會彈出,就像我切換到另一個應用程序一樣。這是我首先想要避免的,因爲我的應用程序是全屏顯示的。
好吧,我沒有繼續前進,用記事本,而不是仿真器再次嘗試,它的工作要好得多內「運行計算器應用程序。我仍然想知道這是不是一個好主意......似乎有很多失敗的可能性 –