VB.NET MDI フォーム内で notepad.exe などの外部アプリケーションを開く必要があります。また、この実行中のコピーが常に 1 つだけであることを確認する必要があります。
以下のコードを使用しましたが、まったく何もしません。SetParent が宣言されておらず、findWindow が宣言されていないというエラーが表示されます
Dim myProcess As Process = New Process()
Dim MyHandle As IntPtr
myProcess.StartInfo.FileName = "Notepad.exe"
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal
myProcess.Start()
MyHandle = FindWindow(vbNullString, "C:\Windows\Notepad.exe")
SetParent(MyHandle, Me.Handle)
myProcess.WaitForExit()
これは、1 つのインスタンスのみが実行されていることを確認するために使用したコードです。
If (System.Diagnostics.Process.GetProcesses.Equals("notepad.exe")) Then
MsgBox("Only One Instance!")
Else
Dim p As New System.Diagnostics.Process
p.StartInfo.FileName = "notepad.exe"
p.Start()
End If
このコードは notepad.exe を開いていますが、以前のインスタンスをチェックしていません。ボタンをクリックするたびに、新しいメモ帳が開きます