C# 在Win窗体应用程序中嵌入Teamviewer

C# 在Win窗体应用程序中嵌入Teamviewer,c#,winforms,parent-child,parent,C#,Winforms,Parent Child,Parent,(C#)hi希望将其纳入我的win表单Teamviewer中 这怎么可能呢 以下代码适用于记事本或绘画等其他应用程序。。。但TeamViewer不起作用 namespace WindowsFormsApplication1 { public partial class Form1 : Form { [DllImport("user32.dll")] static extern IntPtr SetPare

(C#)hi希望将其纳入我的win表单Teamviewer中

这怎么可能呢

以下代码适用于记事本或绘画等其他应用程序。。。但TeamViewer不起作用

namespace WindowsFormsApplication1
    { 
        public partial class Form1 : Form
        {

            [DllImport("user32.dll")]
            static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

            public Form1()
            {
                InitializeComponent();
            }

            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, this.Handle);
            }
        }
    }

保持幸福

问题:您可能正在尝试使用exe名称
Teamviewer.exe

解决方案:您应该提供Teamviewer软件的完整路径,该软件安装/定位在您的电脑中

原因:
notepad.exe
在没有完整路径的情况下工作,因为它已在环境变量中注册,因此即使没有完整路径也可以知道

如果要在没有完整路径的情况下运行
Teamviewer.exe
,可以在
环境变量中设置完整路径

但是您可以提供打开它的完整路径

注意:根据您的安装路径更改以下路径

试试这个:

Process p = Process.Start(@"C:\Program Files (x86)\TeamViewer\Version8\TeamViewer.exe");

Team viewer不是Microsoft产品

无法继承所有应用程序并在windows应用程序中使用其实例。通常是windows标准应用程序,如
MS office、记事本、系统注册表、
config文件

您可以执行应用程序,但要继承,您需要以下内容

  • 程序集引用(.dll文件)
  • 此类类型的重写/创建对象的名称空间
  • 用于编写代码的文档

如果您拥有所有这些功能,则可以创建其实例/将项目集成到应用程序中。

Teamviewer将启动多个窗口。您所指的MainWindowHandle可能不是正确的


您可以尝试枚举Teamviewer进程/线程拥有的所有窗口,然后为其中一个设置父窗口。有关更多信息,请查看以下问题:

是,我获得了完整路径。问题是它会打开teamviewer,但不会以我的win表单打开。