VBscript 的 SendKeys 是否支持 Unicode?

2023-11-25

我发现 VBscript 的SendKeys不支持Unicode。它支持 A-65 等一些字母,但不支持希伯来字母表中的字母 Aleph (א) 等外来字母。问题超出其支持范围。可能是 128+ 的十进制值,它给出一个“?”,并且它只支持 ASCII 范围。

我可以在使用 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

你的猜测很可能是正确的VB脚本的SendKeys不支持统一码.


监控 Windows API 函数调用SendKeys using 刀片API监控器在带有美国英语、俄语和希伯来语键盘的俄语 Windows XP 上)显示SendKeys不支持 Unicode。具体来说,SendKeys执行以下操作:

  1. 调用 ANSI(而非 Unicode)版本VkKeyScan功能 -VkKeyScanA— 获取要发送的字符的虚拟键码。该函数将字符转换为VK_SHIFT + VK_OEM_2,因此似乎在该过程之前或过程中的某个地方,Aleph 字符被转换为不同的 ANSI 字符。

  2. 调用SendInput函数发送VK_SHIFT + VK_OEM_2击键而不是 Aleph 字符。

这里的主要问题是发送 Unicode 字符,SendInput必须用KEYEVENTF_UNICODE标志和相关字符必须通过函数参数传递 - 实验表明情况并非如此。还,VkKeyScan对于 Unicode 字符,实际上并不需要,因为SendInput本身处理 Unicode 输入。


鉴于此,从 VBScript 将 Unicode 输入发送到应用程序的唯一方法是编写一个自定义实用程序或 COM 组件,该实用程序或 COM 组件将利用SendInput正确地并从您的脚本中调用此实用程序/组件。 (VBScript 没有任何本地方法来访问 Windows API。)

巴洛普添加的注释:而 VBScript 的obj.SendKeys(..)不支持 Unicode,VB 的SendKeys.Send(..)将会。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VBscript 的 SendKeys 是否支持 Unicode? 的相关文章

随机推荐

  • 如何将表单作为 JSON 对象提交

    我正在做的是使用 JSON 创建一个表单 然后可以编辑该表单并生成新的 JSON 对象 我遇到的问题似乎是获取表单 ID 我用来返回 JSON 对象的代码是 form document forms 0 fn serializeObject
  • TypeScript 中的类类型检查

    在 ActionScript 中 可以使用以下命令在运行时检查类型 是运算符 var mySprite Sprite new Sprite trace mySprite is Sprite true trace mySprite is Di
  • 在 Delphi 中进行异步套接字编程的惯用方法是什么?

    人们在 Delphi 中编写网络代码时使用 Windows 风格的重叠异步套接字 I O 的正常方式是什么 这是我之前对这个问题的研究 The Indy组件看起来完全同步 另一方面 虽然 ScktComp 单元确实使用 WSAAsyncSe
  • SQL 错误 C# - 参数已定义

    嘿 我有一个 C 应用程序 可以解析 txt 文件并将其中的数据导入到 sql 数据库中 我正在使用 sqlite 现在正在将其移植到 sql server 它与 sqlite 一起工作正常 但现在与 sql 一起处理文件时出现错误 它将第
  • Grails:复选框未设置回 false

    我正在开发一个 Grails 1 0 4 应用程序 我想在网格视图中的单个页面上编辑集合的集合 我让它工作得很好 仅依赖于 Spring MVC 的索引参数处理 除了一件事 网格中的布尔 或布尔 值可以通过复选框设置 但不能取消设置 即当我
  • Unicode 字符特定 CSS - 一个想法

    作为本土孟加拉语 语言 孟加拉语 作家 我们依赖 Unicode 孟加拉语字符 众所周知 Unicode是ASCII的扩展版本 所有的ASCII字符仍然保留在Unicode中 然后添加了世界其他地区的字形 现在 在孟加拉语和其他语言 可以是
  • 比较 Linq 到 Sql 中的可空类型

    我有一个类别实体 其中有一个可为空的 ParentId 字段 当执行下面的方法并且categoryId为null时 结果看起来为null 但有些类别的ParentId值为null 这里有什么问题 我错过了什么 public IEnumera
  • 模拟 IE 渐变中的颜色停止点

    我想给一个div一个带有多个色标的渐变 IE的filter属性不支持 有人有一个创造性的解决方法来模拟 IE 中的颜色停止吗 我已经考虑过创建多个彼此相邻的 div 还有什么吗 Thanks 具有协调渐变颜色的多个 div 是创建 3 颜色
  • Android:在真实设备上崩溃(重新启动)之前检索 logcat

    我正在开发一个应用程序 在真实设备上进行测试时 我发现它会崩溃并导致手机重新启动 我知道我很担心 有什么方法可以在手机重新启动之前检索 logcat 因为手机启动时 logcat 似乎会重置 提前致谢 Use http code googl
  • iOS7:如何在iOS7上添加像联系人一样的固定搜索栏?

    经过我搜索了很多问题和答案 没有好的结果 所以我必须在这里问 我想在导航栏下方添加一个搜索栏 这个搜索栏应该是固定的 就像下面 iOS7 上的联系人一样 Can any one help me to figure it out 你有一个视图
  • 量角器故障排除

    在量角器 1 5 0 中 有一个新的 troubleshoot flag介绍了 目前没有正确记录 但在变更日志它指出 改进错误消息并添加调试信息 无法解析配置文件 webdriver 会话不能 开始了 使用 element 找到多个元素 哪
  • 具有两个数字的最长递增子序列 (LIS)

    如何使用两个数字求出 LIS 的长度 例如 1 2 7 8 3 4 5 6 在上面的数组序列中 LIS 的长度为 3 即 1 2 3 4 5 6 任何想法 我不确定你在问什么 但我假设你的意思是 当且仅当 a 通过采用标准动态规划技术 可以
  • 如何为事件方法创建一个单独的单元,哪个 IDE 允许我在设计时分配给组件事件?

    我有一个带有某些具有事件处理程序的组件的表单 现在我想将这些事件处理程序 那些方法 移动到一个单独的单元 仍然能够在设计时通过对象检查器将它们分配给组件事件 是否可以仅为事件方法创建一个单独的单元 以便对象检查器允许我在设计时分配它们 假设
  • Django:HTML 表单操作定向到带有 2 个参数的视图(或 url?)

    大约一周前开始学习 django 并遇到了困难 真的很感激任何启发 模型 py class data models Model course models CharField max length 250 def str self retu
  • 用于在 UICollectionView 中删除单元格的滑动动画 - Swift 2.0

    我创建了一个应用程序UICollectionView就像这个图片 添加了两个手势 第一个 向上 将擦除单元格 第二个 向下 将更新单元 获取 CoreData 的新数据 功能正常 但没有动画 iOS 有一个非常酷的动画 将单元格向上拖动然后
  • 如何将文本向左旋转90度并根据html中的文本调整单元格大小

    Suppose i have table with some rows and column so i want to rotate text in cells something like this 问题是当我使用样式旋转文本时 rota
  • Rust 在闭包内部使用 continue 的方式是什么?

    这是不可能的 但非常理想 loop something unwrap or else err warn Something bad happened err continue other stuff Rust 解决这个问题的方法是什么 un
  • 从枚举类型和序数获取枚举值

    public
  • 如何从maven构建jar中排除一组包?

    这就是我所需要的 其他详细信息 我有一个 src bootstrap java 文件夹和常规 src main java 文件夹 出于显而易见的原因 每个都需要放入单独的罐子中 我能够使用以下命令生成引导程序 jarthis
  • VBscript 的 SendKeys 是否支持 Unicode?

    我发现 VBscript 的SendKeys不支持Unicode 它支持 A 65 等一些字母 但不支持希伯来字母表中的字母 Aleph 等外来字母 问题超出其支持范围 可能是 128 的十进制值 它给出一个 并且它只支持 ASCII 范围