AxMSTSCLib 如何将摄像头从客户端重定向到远程会话?
AxMSTSCLib how to redirect camera from client to remote session?
我正在使用 AxMSTSCLib
开发一个 Windows 应用程序来建立 RDP 连接。但我不知道如何将物理摄像头从客户端重定向到远程 RDP 会话。
我尝试在 .rdp 文件中添加 camerastoredirect:s:*
和 devicestoredirect:s:*
来重定向摄像头,成功了,我可以通过 RDP 在远程桌面中使用摄像头。
但我在 AxMSTSCLib
库中找不到正确的 属性 来启用此功能。
我尝试重定向所有 possible/dynamic 设备,但根本不起作用。这是代码:
public AxMSTSCLib.AxMsRdpClient7NotSafeForScripting oRemote;
oRemote = new AxMSTSCLib.AxMsRdpClient7NotSafeForScripting();
oRemote.AdvancedSettings7.RedirectDevices = true;
oRemote.AdvancedSettings7.RedirectPorts = true;
oRemote.AdvancedSettings7.RedirectPOSDevices = true;
MSTSCLib.IMsRdpClientNonScriptable5 ocx = (MSTSCLib.IMsRdpClientNonScriptable5)oRemote.GetOcx();
ocx.RedirectDynamicDevices = true;
for (int i = 0; i < ocx.DeviceCollection.DeviceCount; i++)
{
MSTSCLib.IMsRdpDevice device = ocx.DeviceCollection.get_DeviceByIndex((uint)i);
device.RedirectionState = true;
}
我在较新的 API 文档中找到 IMsRdpCameraRedirConfigCollection,需要将 IMsRdpClientNonScriptable
从 5 升级到 7。
我尝试在将 Redirected
设置为 true 之前打印它的计数,如下所示:
MSTSCLib.IMsRdpClientNonScriptable7 ocx = (MSTSCLib.IMsRdpClientNonScriptable7)oRemote.GetOcx();
Logger.Log("[ocx.CameraRedirConfigCollection.Count]:" + (ocx.CameraRedirConfigCollection.Count).ToString());
for (int i = 0; i < ocx.CameraRedirConfigCollection.Count; i++)
{
MSTSCLib.IMsRdpCameraRedirConfig camera = ocx.CameraRedirConfigCollection.get_ByIndex((uint)i);
Logger.Log("[camera.FriendlyName]:" + camera.FriendlyName);
camera.Redirected = true;
}
不幸的是,我得到了零分。
根据 Docs,看来我必须使用 AddConfig
方法将相机符号 link 添加到集合中。我卡在了这一点上,如何将相机符号 link 添加到 IMsRdpCameraRedirConfigCollection
?如何获得相机符号 link?
为什么IMsRdpCameraRedirConfigCollection
一开始是空的?由于您没有 Rescan 连接相机设备。
MSTSCLib.IMsRdpClientNonScriptable7 ocx = (MSTSCLib.IMsRdpClientNonScriptable7)oRemote.GetOcx();
// enumerates connected camera devices
ocx.CameraRedirConfigCollection.Rescan();
for (int i = 0; i < ocx.CameraRedirConfigCollection.Count; i++)
{
MSTSCLib.IMsRdpCameraRedirConfig camera = ocx.CameraRedirConfigCollection.get_ByIndex((uint)i);
camera.Redirected = true;
}
就是这样,所有连接的相机设备都将被重定向到远程桌面。
我正在使用 AxMSTSCLib
开发一个 Windows 应用程序来建立 RDP 连接。但我不知道如何将物理摄像头从客户端重定向到远程 RDP 会话。
我尝试在 .rdp 文件中添加 camerastoredirect:s:*
和 devicestoredirect:s:*
来重定向摄像头,成功了,我可以通过 RDP 在远程桌面中使用摄像头。
但我在 AxMSTSCLib
库中找不到正确的 属性 来启用此功能。
我尝试重定向所有 possible/dynamic 设备,但根本不起作用。这是代码:
public AxMSTSCLib.AxMsRdpClient7NotSafeForScripting oRemote;
oRemote = new AxMSTSCLib.AxMsRdpClient7NotSafeForScripting();
oRemote.AdvancedSettings7.RedirectDevices = true;
oRemote.AdvancedSettings7.RedirectPorts = true;
oRemote.AdvancedSettings7.RedirectPOSDevices = true;
MSTSCLib.IMsRdpClientNonScriptable5 ocx = (MSTSCLib.IMsRdpClientNonScriptable5)oRemote.GetOcx();
ocx.RedirectDynamicDevices = true;
for (int i = 0; i < ocx.DeviceCollection.DeviceCount; i++)
{
MSTSCLib.IMsRdpDevice device = ocx.DeviceCollection.get_DeviceByIndex((uint)i);
device.RedirectionState = true;
}
我在较新的 API 文档中找到 IMsRdpCameraRedirConfigCollection,需要将 IMsRdpClientNonScriptable
从 5 升级到 7。
我尝试在将 Redirected
设置为 true 之前打印它的计数,如下所示:
MSTSCLib.IMsRdpClientNonScriptable7 ocx = (MSTSCLib.IMsRdpClientNonScriptable7)oRemote.GetOcx();
Logger.Log("[ocx.CameraRedirConfigCollection.Count]:" + (ocx.CameraRedirConfigCollection.Count).ToString());
for (int i = 0; i < ocx.CameraRedirConfigCollection.Count; i++)
{
MSTSCLib.IMsRdpCameraRedirConfig camera = ocx.CameraRedirConfigCollection.get_ByIndex((uint)i);
Logger.Log("[camera.FriendlyName]:" + camera.FriendlyName);
camera.Redirected = true;
}
不幸的是,我得到了零分。
根据 Docs,看来我必须使用 AddConfig
方法将相机符号 link 添加到集合中。我卡在了这一点上,如何将相机符号 link 添加到 IMsRdpCameraRedirConfigCollection
?如何获得相机符号 link?
为什么IMsRdpCameraRedirConfigCollection
一开始是空的?由于您没有 Rescan 连接相机设备。
MSTSCLib.IMsRdpClientNonScriptable7 ocx = (MSTSCLib.IMsRdpClientNonScriptable7)oRemote.GetOcx();
// enumerates connected camera devices
ocx.CameraRedirConfigCollection.Rescan();
for (int i = 0; i < ocx.CameraRedirConfigCollection.Count; i++)
{
MSTSCLib.IMsRdpCameraRedirConfig camera = ocx.CameraRedirConfigCollection.get_ByIndex((uint)i);
camera.Redirected = true;
}
就是这样,所有连接的相机设备都将被重定向到远程桌面。