Citrix Xenapp - Sendkeys

时间:2014-09-30 12:19:15

标签: vbscript sendkeys citrix xenapp

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

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

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

我考虑了很多选项,包括使用Windows虚拟键盘(这没有用)和在Windows中安装虚拟键盘驱动程序(远远超出我的深度)。

以下是使用C ++讨论扫描码的文章之一:

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

我不知所措,任何可以帮助的人都会成为超级英雄......如果超级英雄'主要的吸引力是成为一个极客神。 :)

任何帮助表示赞赏!!!

干杯。

**** **** UPDATE

您好,

我已经做了一点挖掘...

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

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

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

这对我来说这个问题并不是一个特权问题,而且我认为sendkeys方法还有希望吗?

进一步研究了这一点,有一些文档:Citrix站点上有关Citrix ICA客户端的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设置,允许在终端字段中接收sendkeys,而不仅仅是工具栏菜单。

和以前一样,任何帮助都会受到赞赏....我正在为这一个慢慢疯狂!!!

干杯!

1 个答案:

答案 0 :(得分:1)

Bullet指出解决方案

需要什么:

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

  1. 将OSK设置为接收'hover'命令
  2. 设置VBA代码以将鼠标移动到特定坐标
  3. 使用VBScript控制何时运行VBA XLS文件中的特定子。 - 可以设置为在后台运行,无需手动打开文件等。
  4. 将Citrix Xenapp终端设置为活动窗口,按键发送!
  5. 干杯!