我发现VBscript的SendKeys
不支持Unicode。它支持一些像A-65,但不包括像希伯来字母表中的Aleph(א)这样的外来字母。 Prob超出支持范围。可能是128+的十进制值,它给出了一个“?”,它只支持ASCII范围。VBscript的SendKeys支持Unicode吗?
我可以使用Windows XP在我的电脑上键入并看到希伯来字母。所以操作系统对角色的支持就在那里并且设置好了。我的源代码证明,因为行
msgbox Chrw(1488)
显示Aleph字符,我已经在记事本和MS Word中显示它。
它看起来像它发送一个问号,它不承认的角色。我认为MS Word或记事本,如果他们确实有问题显示一个字符(例如,当字体不支持字符),他们会显示一个框,而不是一个问号。无论如何,在记事本的情况下。所以它看起来像SendKeys
问题。有任何想法吗?任何类型的解决方法?
Dim objShell
Set objShell = CreateObject("WScript.Shell")
objShell.Run "notepad" ''#can change to winword
Wscript.Sleep 2000
msgbox Chrw(1488) ''#aleph
objShell.SendKeys ("abc" & ChrW(1488) & "abc") ''#bang, it displays a ? instead of an aleph
WScript.Quit
你已经安装了哪些键盘布局,以及你的** Languange用于非Unicode程序**在区域和语言选项中设置? – Helen 2010-07-07 22:08:55
至于语言和布局。语言英语英国与布局英语英国。语言英语美国与布局英语美国。语言希伯来语与布局希伯来语。至于“非unicode程序的语言”,英语美国。我试过希伯来语。无论哪种方式,msgbox都会显示msgbox chrw(1488)的字符Aleph。 (它总是)但是当设置“non-unicode程序的语言”(需要重启)时,设置为US,记事本显示?为sendkeys chrw(1488)。当设置为希伯来语时,记事本不会为sendkeys chrw(1488)显示任何内容,因此仍然不会显示sendkeys chrw(1488)的字符。 – barlop 2010-07-08 00:08:37
我编辑了你的文章来改善格式,希望你不介意。如果你确实介意,请随时编辑回来。 – Helen 2010-07-08 08:35:18