我正在帮助一位经验比我少的朋友/-;.
使用 Windows 10 和 Acrobat-Pro V10(滚动版本)。
我们希望在“鼠标输入”上使用 Acrobat-Pro(或 Nitro-Pro)文本字段的“运行 Javascript”,以便该操作就像“Windows 键 H”键盘组合以这样的方式发出:当用户单击文本字段框时启动 Windows 听写子系统。
所以请注意,这是 Acrobat-Pro inside 的 Javascript 代码。我不确定是什么管理 Javascript 的执行环境;应用程序,或者它是否与底层操作系统“对话”(在此用例中为 Windows 10+)。
目前,用户可以单击 Acrobat Pro 中的文本字段,然后手动按 Windows 键 H 组合,即可使用听写系统。
我们希望超越这一点,因此用户只需单击“文本字段”框,听写服务就会启动。
这是我的研究进展
编辑
在空白文档中添加了
Text Field
。 Right-Clicked
和选定的 Properties
。选择 Actions
标签。选定的触发器 = '鼠标输入 and Action = 'Run a Javascript
。粘贴以下代码。
注意,还尝试过 Mouse Up
,根据 Apress 的书“Enhancing Adobe Acrobat Forms With Javascript”
function simulateKeyPress(key, modifiers) {
const event = new KeyboardEvent('keydown', {
key: key,
ctrlKey: modifiers.includes('Control'),
shiftKey: modifiers.includes('Shift'),
altKey: modifiers.includes('Alt'),
metaKey: modifiers.includes('Meta')
});
window.dispatchEvent(event);
}
function simulateWindowsKeyH() {
simulateKeyPress('h', ['Meta']);
}
// Simulate the "Windows-key H" combination
simulateWindowsKeyH();
我还发现了一个更简单的版本
var keyCombo = "[H";
console.log(keyCombo);
(编辑)这将是我的首选解决方案,并且与我熟悉的技术产生共鸣。
(这两个代码片段都是由人工智能系统提供的,它似乎“理解”了这个问题)。
我尝试过使用或不使用
<script>
和大括号包装器,但没有输出或错误消息。
在所有测试案例中,我没有从 Windows 或 Acrobat-Pro 获得任何反馈,尤其是在 JavaScript 编辑器中使用“执行”按钮时令人失望,我认为该按钮是为了允许内联开发和测试代码。
额外的想法:
A.我尝试用大括号包裹完整的代码集,即
{ ... code set .... }
B.从一个单独的可靠来源来看,我假设我不需要
<script> ... </script>
包装标签。正确吗?
C.是否有一些日志系统可以查看错误消息?
欢迎任何建议、评论等。
谢谢
正如 @eliezer-berlin 已经提到的,JavaScript 无法真正在浏览器或其他沙盒环境(例如 Acrobat!)之外调度物理按键。该脚本与系统的其余部分隔离,防止其执行可能影响操作系统(或其他应用程序)的操作。这对于安全至关重要,因为脚本不应执行任何未经授权的操作。
为了更好地理解 KeyboardEvent 对象,我强烈建议您探索 MDN Web Docs,或查找其如何在线模拟按键事件的示例。
这是否意味着一切都结束了,无能为力了……?就你的情况而言,我不这么认为。您可能想查看此相关问题。探索使用 JS 启用语音听写的替代方法,而不是直接打开 Windows 听写子系统,可以为您提供一些可行的解决方案。不幸的是我无法进一步帮助你。祝你好运!