Javascript 从 Acrobat Pro 文本字段发出 Windows 键 H?

问题描述 投票:0回答:1

我正在帮助一位经验比我少的朋友/-;.

使用 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.是否有一些日志系统可以查看错误消息?

欢迎任何建议、评论等。

谢谢

javascript windows-10 acrobat acrobat-sdk nitro-pro
1个回答
0
投票

正如 @eliezer-berlin 已经提到的,JavaScript 无法真正在浏览器或其他沙盒环境(例如 Acrobat!)之外调度物理按键。该脚本与系统的其余部分隔离,防止其执行可能影响操作系统(或其他应用程序)的操作。这对于安全至关重要,因为脚本不应执行任何未经授权的操作。

为了更好地理解 KeyboardEvent 对象,我强烈建议您探索 MDN Web Docs,或查找其如何在线模拟按键事件的示例。

这是否意味着一切都结束了,无能为力了……?就你的情况而言,我不这么认为。您可能想查看此相关问题。探索使用 JS 启用语音听写的替代方法,而不是直接打开 Windows 听写子系统,可以为您提供一些可行的解决方案。不幸的是我无法进一步帮助你。祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.