我已经构建了一个C#语音应用程序,该应用程序需要同时访问我的麦克风以同时进行多个客户端/服务器连接。
我正在使用的媒体库仅允许我的麦克风在任何一次与一个连接一起使用。
我想同时在多个客户端/服务器连接上使用麦克风。
如果我打开了自己构建的应用程序的多个实例,则可以在每个应用程序中同时使用同一个麦克风,从而可以在多个连接上使用它。
太好了。
但是我宁愿在桌面上没有3到4个应用程序实例,所以我的想法是要有一个可显示子应用程序的Parent winforms应用程序。
我碰到了这篇帖子How can I run another application within a panel of my C# program?
这似乎是我想要的,但是...
如果我使用示例。
private void button1_Click(object sender, EventArgs e)
{
Process p = Process.Start("notepad.exe");
Thread.Sleep(500); // Allow the process to open it's window
SetParent(p.MainWindowHandle, panel1.Handle);
}
[DllImport("user32.dll")]
static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
}
记事本确实在我告诉过的面板中的窗体上打开了,正如预期的那样。
好像在改变
Process p = Process.Start("notepad.exe");
到
Process p = Process.Start("C:\\Users\\me\\source\\repos\\MyApp\\bin\\Release\\MyApp.exe");
我的应用程序在“父母”表单之外正常打开。
这个新手缺少什么?
还是我会以错误的方式处理事情,应该做其他事情?