WScript Sendkey不接受Unicode字符

时间:2014-04-14 11:13:49

标签: unicode vbscript sendkeys wsh

我正在尝试使用WScript Sendkeys发送char“ä”。查看它不起作用。我发现了一篇帖子Does or Can VBscript's SendKeys support Unicode?

我的代码:

Set sh = WScript.CreateObject("WScript.Shell")
sh.Run "notepad.exe", 9
WScript.Sleep 1000 'wait a while to load notepad app'
sh.SendKeys " äää Hello World!"  //buggy line
sh.SendKeys "{ENTER}"
WScript.Sleep 100'
sh.SendKeys "^p"

但我无法理解解决方案。如果你用简单的简单代码(解决方案)教我,那将会很棒。我不擅长WScript(因为它不是我的领域)。 我知道我在乞求代码(Pz原谅我)。但是PLZ了解我的情况。

非常感谢提前!!

2 个答案:

答案 0 :(得分:4)

Windows脚本主机SendKeys doesn't support Unicode

WSH / SendKeys的替代方案:

  • 使用免费工具AutoIt进行GUI自动化。您可以使用AutoIt的SendControlSendControlSetText命令自动输入文本。

    Run('notepad.exe')
    WinWaitActive("[CLASS:Notepad]", "", 10)
    ControlSend("[CLASS:Notepad]", "", "Edit1", "äää Hello World!")
    
  • 用其他编程语言(C ++,C#等)编写代码,并使用SendInput标志调用Windows API KEYEVENTF_UNICODE函数。

答案 1 :(得分:0)

评论错误。除了称为扫描码的键盘代码之外,没有unicode或任何其他代码键盘。如果你不能在键盘上输入它,那么它们都不能发送密钥。它们是按键而不是字符。含义取决于您使用的键盘布局。使用与键盘相同的击键。如果使用CreateWindowA创建Window,或者如果使用CreateWindowW创建窗口,则Windows将其转换为ascii字符。