将RDP构建成C#应用程序
我目前正在尝试将RDP构建到我制作的应用程序中。我们经常需要定期连接到许多服务器,并且希望我们的员工不再需要了解所有服务器的详细信息 我目前正在尝试使用以下示例: 当使用上述方法时,我收到以下错误: 正在检索具有CLSID的组件的COM类工厂 {791FA017-2DE3-492E-ACC5-53C67A2B94D0}由于以下原因失败 错误:80040154类未注册(HRESULT异常: 0x80040154(REGDB_E_CLASSNOTREG)) 根据该代码:将RDP构建成C#应用程序,c#,rdp,C#,Rdp,我目前正在尝试将RDP构建到我制作的应用程序中。我们经常需要定期连接到许多服务器,并且希望我们的员工不再需要了解所有服务器的详细信息 我目前正在尝试使用以下示例: 当使用上述方法时,我收到以下错误: 正在检索具有CLSID的组件的COM类工厂 {791FA017-2DE3-492E-ACC5-53C67A2B94D0}由于以下原因失败 错误:80040154类未注册(HRESULT异常: 0x80040154(REGDB_E_CLASSNOTREG)) 根据该代码: MsRdpClient rd
MsRdpClient rdp1;
rdp1 = new MSTSCLib.MsRdpClient();
非常感谢您的帮助。将您的Visual Studio项目设置为x86版本 项目属性->构建选项卡->平台目标->x86
如果没有帮助,请尝试通过注册com dll。正如我所评论的,根据您的操作系统,您需要一个不同的com组件 您引用的是特定于XP的。查看以下页面,了解不同操作系统的所有CLSID:
例如,对于windows 7,您需要
{A9D7038D-B5ED-472E-9C47-94BEA90A5910}
,如果您通过注册表(HKEY_CLASS_ROOT\CLSID)进行搜索,它由C:\windows\System32\mstscax.dll
您缺少的COM组件提供。可能您使用的系统与他的(XP)不同,自Vista以来,RDP已升级,COM注册不同。如果您直接使用他的二进制文件,它将无法在您的注册表中找到COM注册。您需要使用在计算机上注册的COM组件。我发现需要将MsRdpClient添加到工具箱(工具箱>右键单击>选择项)。然后,我不得不将组件拖到表单上,而不是以编程方式添加它。这是现在的工作。谢谢你们的努力,伙计们!为x86编译不会提供特定于操作系统的COM注册。但它确实允许您访问x64中提供的x86 COM组件…@nsr81如果OP使用了“添加引用”对话框-CLSID必须正常。在其他情况下,CLSID与更高版本的系统兼容。