1

我正在开发一个 Chrome 扩展来帮助自动化任务。我已经到了需要我的扩展来触发一些 AutoHotkey 脚本的地步。

有什么方法可以使用 JavaScript 触发 AutoHotkey?(我也使用 jQuery)

4

2 回答 2

2

HTTP 路由可能是正确的方法。您可以使用 Node.js Node.js轻松设置小型服务器,并使用其中一个子进程函数让它生成您的 AHK 脚本。我不知道 Chrome 扩展安全模型是如何工作的,因此您可能必须减轻跨站点脚本问题。我认为这是可以解决的,但还没有这样做。

于 2013-08-31T16:59:12.557 回答
1

一般会想到两种方式:

1. 使用 AHK 模拟 HTTP 服务器

使用自己的本地 Web 服务器(最好是第一手的 AHK 实现),您可以直接通过 AJAX 调用进行通信。然后服务器可以接收和委托任何类型的命令。对于 AHK 来说,有Sparrow存在,但是项目好像已经死了,帖子里的源代码链接都挂了;您必须从其他地方(例如一些 svn 存储库)获取它们。您还可以实现一个命令行工具,例如KF Web Server,并将其与您的脚本结合使用。

2.定义你自己的协议

另一种解决方案是简单地指定您自己的协议并将其分配给可执行文件,例如您的脚本或某种调度程序,根据您传递的参数启动其他应用程序。这个答案描述了如何在 Windows 中定义自己的协议。您还可以查看相应的Windows 文档
如果您能够在浏览器中使用 JavaScript 调用自定义协议,很大程度上取决于您的浏览器,也可能是它的安全设置。您需要检查一下您的环境。

安全
性 无论您采用何种解决方案,让网页能够运行应用程序甚至执行代码都会导致严重的漏洞。如果攻击者发现了你的协议、网络服务器等,他们可以在你访问他们控制的网站时轻松注入他们自己的东西。这就是为什么您至少应该实现两件事:
a) 使用某种身份验证机制(例如HMAC)。这使得剥削至少有点困难。
b)永远不要直接将参数作为代码执行。始终解析它们并检查它们的完整性。

于 2013-08-28T12:00:57.800 回答