Question

I am writing an application that must be able to send text over to an RDP window AND be able to send text through a Citrix (Virtually) hosted application.

Currently I have success with this by using the SendInput function with a DLL Bind. However there are a few issues that occurred while testing. The first being it causes some edit controls to instigate a "Ding" sound [This has been fixed]. The second larger issue is in Citrix it will sometimes drop letters.

I have been searching for a better version and have attempted every manner of windows command, send message, post message, clipboard, and send keys pipelines. These all work exceptionally well when the target window is local to the machine, however when the handle to the window is buried behind RDP or Citrix I can not seem to work something out and have exhausted all my ideas.

I was curious if someone perhaps has done this in either RDP or Citrix such that they can put text from their C# textbox into a remote windows edit control via any means? I will note that I can get the clipboard to pass its data just fine, I just cant seem to get the RDP/Citrix window to paste the information forcing me to manually paste.

Thank you,

Chris

Was it helpful?

Solution

Citrix offers a mechanism called Virtual Channels which are specifically designed for communication between client and server:

A Citrix virtual channel is a bi-directional error-free connection used for the exchange of generalized packet data between a Citrix host for online delivery (XenApp or XenDesktop) and the Citrix Receiver online plug-in. For example: sound, graphics, client drive mapping, and printing are just a few of the virtual channels written by Citrix. The Citrix Virtual Channel Software Development Kit (VCSDK) allows software engineers to write both host-side applications and receiver-side drivers to support additional virtual channels using the Citrix ICA protocol. The host-side virtual channel applications run on XenApp or XenDesktop, and the client-side portion of the virtual channel runs on the local device where Citrix Receiver resides. This SDK provides support for writing new virtual channels for the Win32 and Windows CE versions of the online plug-ins for Citrix Receiver. See the accompanying documentation for detailed information about the client versions supported.

Microsoft offers a similar Virtual Channel implementation for RDS: Virtual channels are software extensions that can be used to add functional enhancements to a Remote Desktop Services application. Examples of functional enhancements might include: support for special types of hardware, audio, or other additions to the core functionality provided by the Remote Desktop Services Remote Desktop Protocol (RDP)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top