将远程桌面ActiveX控件与虚拟通道配合使用

如果已在远程桌面服务部署中启用了虚拟通道应用程序,可以通过远程桌面ActiveX控制使此应用程序可供访问远程桌面会话主机 (RD 会话主机) 服务器的客户端计算机使用。

使虚拟通道应用程序可用

  1. 部署应用程序的服务器端模块,并确保它在 RD 会话主机服务器上运行。 在 Web 服务器上运行的远程桌面服务 Web 应用程序的连接页中,访问 IMsTscAdvancedSettings 接口的 PluginDlls 属性以指定虚拟通道 DLL 的名称。 如果有多个插件,请指定以逗号分隔的 DLL 名称列表。 例如,如果虚拟通道插件名为“MyPlugin.dll”,请使用以下代码:

    MsRdpClient.AdvancedSettings.PluginDlls = "myplugin.dll"
    

    如果有两个虚拟通道 DLL,请使用以下代码。 在此示例中,DLL 文件名为“MyPlugin.dll”和“Vdriver.dll”:

    MsRdpClient.AdvancedSettings.PluginDlls = "myplugin.dll,Vdriver.dll"
    

    出于安全原因, PluginDlls 属性仅接受虚拟通道 DLL 的命名列表。 如果指定了任何形式的文件系统或 UNC 路径,控件将返回错误。 此外,DLL 的名称必须仅包含字母数字字符。

  2. 确保客户端模块安装在 %windir%\system32 目录中。

虚拟通道 API 不允许在同一个进程中加载同一虚拟通道 DLL 的多个实例。 因此,如果在同一进程中运行的远程桌面ActiveX控件有多个实例,则只有控件的第一个实例才能加载虚拟通道 DLL。 如果要设计必须支持单个进程中多个实例的虚拟通道应用程序,则必须使用 动态虚拟通道 API 来实现虚拟通道应用程序。

注意

默认情况下,远程桌面ActiveX控制从 %windir%\system32 目录加载虚拟通道客户端 DLL。 管理员可以更改此默认客户端插件 DLL 目录。 为此,请编辑客户端计算机上的 HKEY_LOCAL_MACHINE\SoftwareMicrosoftTerminal\\ServerClientvdllpath\ 注册表项。 不能以 UNC 格式指定此目录路径。