2014-02-17 62 views
1

我正在編寫一個應用程序,它必須能夠將文本發送到RDP窗口,並且能夠通過Citrix(虛擬)託管的應用程序發送文本。關於粘貼到遠程窗口的C#主題

目前我通過使用SendInput函數與DLL綁定成功。但是,測試時發生了一些問題。首先是它導致一些編輯控件鼓動一個「丁」的聲音[這已被修復]。第二個更大的問題是Citrix有時會丟棄信件。

我一直在尋找更好的版本,並嘗試過各種方式的windows命令,發送消息,發佈消息,剪貼板和發送密鑰管道。當目標窗口位於機器本地時,這些都工作得非常好,但是當窗口的句柄被埋在RDP或Citrix後面時,我似乎無法解決問題,並且耗盡了我的所有想法。

我很好奇,如果有人可能已經在RDP或Citrix中完成了這項工作,以便他們可以通過任何方式將C#文本框中的文本放入遠程窗口編輯控件中?我會注意到我可以通過剪貼板傳遞其​​數據,我似乎無法獲得RDP/Citrix窗口來粘貼信息,迫使我手動粘貼。

謝謝

克里斯

回答

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版本的新虛擬通道提供支持。有關支持的客戶端版本的詳細信息,請參閱隨附的文檔。

微軟提供了類似的Virtual Channel實施RDS:虛擬通道是可以用來增強功能添加到遠程桌面服務的應用軟件擴展。功能增強的例子可能包括:特殊類型的硬件,音頻,或通過遠程桌面服務遠程桌面協議(RDP)

+0

你好的Remko, 我很欣賞的響應中提供的核心功能其他附加的支持。不幸的是,我們儘量避免編寫客戶端必須安裝的額外應用程序。我們的競爭目前是這樣做的,並且就這個問題獲得了很多投訴,這正是我們正在努力利用的。 但是,我在那個迴應中唯一的問題是,您是否覺得我可以通過虛擬通道發佈WM_Paste消息,而無需爲該通道實施服務器端應用程序? – cbfSoftware

相關問題