C# 在Win窗体应用程序中嵌入Teamviewer
(C#)hi希望将其纳入我的win表单Teamviewer中 这怎么可能呢 以下代码适用于记事本或绘画等其他应用程序。。。但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
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表单打开。