Citrix Xenapp - 发送密钥

Posted

技术标签:

【中文标题】Citrix Xenapp - 发送密钥【英文标题】:Citrix Xenapp - Sendkeys 【发布时间】:2014-09-30 12:19:15 【问题描述】:

我一直在尝试(资源有限)使用 VBScript 和 VBA 命令将键盘功能发送到远程 citrix 终端。 - 正如我发现的那样,这是一个已知的限制,我发现各种文章通过 C++ 和扫描码提供了一种替代方法来克服限制。

主要问题是,我无法访问 C++。

是否有允许使用 VBScript 和/或 VBA 的解决方案?

我考虑了很多选择,包括使用 windows 虚拟键盘(这不起作用)和在 windows 中安装虚拟键盘驱动程序(超出我的深度)。

这是一篇使用 C++ 讨论扫描码的文章:

http://www.codeproject.com/Tips/310817/SendKeys-using-ScanCodes-to-Citrix

我很茫然,任何可以提供帮助的人都会成为超级英雄……如果超级英雄的主要诉求是成为极客之神。 :)

感谢任何帮助!!!

干杯。

****更新****

你好,

我已经做了更多的挖掘......

...Citrix ICA Client 终端窗口未接收到 VBScript sendkeys 命令,但如果我在执行脚本后手动按终端中的 alt(暂停 2 秒),例如:

*Set objShell = WScript.CreateObject("WScript.Shell")
WScript.Sleep 2000
objShell.SendKeys ("e")
objShell.SendKeys "(P)"*

以上可以访问终端窗口内工具栏上的“文件”、“编辑”等菜单选项。

这对我来说表明该问题不是特权问题,我认为 sendkeys 方法可能还有希望?

进一步研究后,Citrix 网站上有一些关于 Citrix ICA 客户端的文档 re:ini 文件设置。

其中一篇文章可以在下面找到:

http://support.citrix.com/article/CTX129166

我玩过,似乎确实有一些 ini 文件列出了键盘映射、DLL 文件、虚拟键传递?

“模块”ini 文件的一个部分包含以下内容:

[KeyboardLayout]
(User Profile)=0x00000000
(Server Default)=0xFFFFFFFF

还有其他代码,包括各种语言,英国,美国-国际等。

然后是 DLL 代码列表,例如:

kbduk.dll=0x00000809

最后是语言 ID,例如:

eng=0x00000809

我猜测(希望)有一种方法可以修改 ini 设置,允许在终端字段中接收发送键,而不仅仅是工具栏菜单。

和以前一样,感谢任何帮助....我正在慢慢为这个发疯!!!

干杯!

【问题讨论】:

您可能希望寻找 OLE(对象链接和嵌入)解决方案作为 vbscript 替代方案。 我唯一一次玩过输入注入,我将这个库用于 .NET:inputsimulator.codeplex.com 你能改用 PowerShell 脚本吗? PS允许你调用.NET组件。 您好,感谢您回复我。 - 这听起来很有希望,但我不确定:powershell。 PowerShell 不是基于 Windows 7 的吗? (我们将要从 XP 升级,但目前仍处于黑暗时代)。我当然安装了 .Net 组件... 是的,如果你坚持使用 VBA,我很快就会用尽想法。如果您使用的是 C/C++,那么您可以做很多事情,比如让另一个窗口成为焦点并将消息发布到其他窗口。您有什么方法可以模拟在 ICA 窗口上单击鼠标以使其获得焦点? 感谢您的回复。 - 我已经通过捏造解决了这个问题。简而言之:OSK(屏幕键盘)+ VBA 脚本的组合来移动鼠标并“悬停”在 OSK 和 VBS 上以控制使用哪个 VBA 命令,我可以设置屏幕坐标以使我能够“发送” ' 通过 OSK 应用程序的按键...这有效! :) - 它不漂亮,但它有效,我对此很满意。我还有另一个问题:如何打开 OSK 并将其移动到一组特定的坐标,但我会单独提出这个问题。 :) 干杯! 【参考方案1】:

子弹头解决方案

需要什么:

屏幕键盘 (OSK.EXE) Windows 应用程序 VBScript(不是必需的,但我喜欢作为控制脚本) VBA(移动鼠标)

    设置 OSK 以接收“悬停”命令 设置 VBA 代码以将鼠标移动到特定坐标 使用 VBScript 控制何时运行 VBA XLS 文件中的特定子程序。 - 这可以设置为在后台运行,无需手动打开文件等。 将 Citrix Xenapp 终端设置为活动窗口和按键应该发送!

大家干杯!

【讨论】:

以上是关于Citrix Xenapp - 发送密钥的主要内容,如果未能解决你的问题,请参考以下文章

Citrix XenApp/XenDesktop 7.15 LTSR发布

Citrix XenApp工作原理

Citrix XenApp 6.5安装

Citrix XenApp和XenDesktop 打印系统解析③

Citrix XenApp和XenDesktop 7.11新功能

Citrix XenApp/XenDesktop版本正确选择