我尝试在winforms应用程序中的一个表单中启动一个vncviewer进程。
我没有看到任何错误或异常,但进程在winforms之外启动。我不能把它包含在我的形式中。这是我尝试过的。我调试并注意到setparent函数没有改变窗体的窗口句柄。
ProcessStartInfo info = new ProcessStartInfo();
info.Arguments = hostIP;
info.FileName = @"C:\Program Files\RealVNC\VNC Viewer\vncviewer.exe";
info.UseShellExecute = true;
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Normal;
Process pDocked = Process.Start(@"C:\Program Files\RealVNC\VNC Viewer\vncviewer.exe");
DictionaryClass.hostVNCName = pDocked.ProcessName;
pDocked.WaitForInputIdle();
appwin = pDocked.MainWindowHandle;
SetParent(appwin, this.Handle);
1条答案
按热度按时间d8tt03nd1#
如果您已经正确理解了您的问题,那么您希望在一个应用程序界面中显示外部应用程序。如果是这样的话,您可以直接调用系统中的DLL库,调用SetParent函数,如下图所示:
注意:使用“DllImport”可能会出现错误信息。仅包括以下内容:
然后以这种方式添加下面的代码: