我一直在尝试(资源有限)使用VBScript和VBA命令将键盘功能发送到远程citrix终端。 - 正如我所发现的那样,这是一个已知的限制,我发现了各种文章,它们通过C ++和扫描码提供了另一种方法来克服限制。
主要问题是,我无法访问C ++。
我考虑了很多选项,包括使用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,而不仅仅是工具栏菜单。
和以前一样,任何帮助都会受到赞赏....我正在为这一个慢慢疯狂!!!
干杯!
答案 0 :(得分:1)
Bullet指出解决方案
需要什么:
屏幕键盘(OSK.EXE)Windows应用程序 VBScript(不是必需的,但我喜欢作为控制脚本) VBA(移动鼠标)
干杯!