粘贴到远程窗口的C#主题

时间:2014-02-17 21:35:56

标签: c# keyboard clipboard rdp citrix

我正在编写一个必须能够将文本发送到RDP窗口的应用程序,并且能够通过Citrix(虚拟)托管应用程序发送文本。

目前,我通过使用带有DLL绑定的SendInput函数取得了成功。但是,测试时会出现一些问题。第一个是它导致一些编辑控件发出“叮”声 [已修复] 。第二个更大的问题是Citrix它有时会掉信。

我一直在寻找更好的版本,并尝试过各种方式的Windows命令,发送消息,发布消息,剪贴板和发送密钥管道。当目标窗口是机器的本地窗口时,这些都非常好用,但是当窗口的句柄隐藏在RDP或Citrix后面时,我似乎无法解决问题,并且已经耗尽了我的所有想法。

我很好奇是否有人在RDP或Citrix中做过这样的事情,以便他们可以通过任何方式将C#文本框中的文本放入远程Windows编辑控件中?我会注意到我可以让剪贴板传递其​​数据就好了,我似乎无法通过RDP / Citrix窗口粘贴信息,迫使我手动粘贴。

谢谢,

克里斯

1 个答案:

答案 0 :(得分:0)

Citrix 提供了一种名为Virtual Channels的机制,专门用于客户端和服务器之间的通信:

Citrix虚拟通道是一种双向无错连接,用于在用于联机交付的Citrix主机(XenApp或XenDesktop)与Citrix Receiver联机插件之间交换通用数据包数据。例如:声音,图形,客户端驱动器映射和打印只是Citrix编写的一些虚拟通道。 Citrix虚拟通道软件开发套件(VCSDK)允许软件工程师编写主机端应用程序和接收器端驱动程序,以使用Citrix ICA协议支持其他虚拟通道。主机端虚拟通道应用程序在XenApp或XenDesktop上运行,虚拟通道的客户端部分在Citrix Receiver所在的本地设备上运行。此SDK支持为Citrix Receiver的联机插件的Win32和Windows CE版本编写新的虚拟通道。有关支持的客户端版本的详细信息,请参阅随附的文档。

Microsoft 为RDS提供了类似的Virtual Channel实现:虚拟渠道是可用于向远程桌面服务应用程序添加功能增强的软件扩展。功能增强的示例可能包括:支持特殊类型的硬件,音频或对远程桌面服务远程桌面协议(RDP)提供的核心功能的其他补充