如何使用JavaScript激活AutoHotkey脚本
How can I activate an AutoHotkey script using JavaScript?
我正在开发一个Chrome扩展,以帮助自动化任务。我已经到了需要我的扩展来触发一些AutoHotkey脚本的地步。
有什么方法可以使用JavaScript触发自动热键吗?(我也使用jQuery)
HTTP路由可能是正确的选择。您可以使用Node.js Node.js轻松地设置一个小型服务器,并使用其中一个子进程函数生成AHK脚本。我不知道Chrome扩展的安全模型是如何工作的,所以你可能需要减轻跨站点脚本的问题。我认为这是可以解决的,但还没有这样做。
通常会想到两种方法:
1.使用AHK模拟HTTP服务器
使用自己的本地web服务器(最好是第一手的AHK实现),您可以直接通过AJAX调用进行通信。然后,服务器可以接收和委派任何类型的命令。对于AHK来说,有Sparrow,但项目似乎已经死了,帖子中的源代码链接也断了;您必须从其他地方获取它们(例如svn存储库)。您还可以实现像KF Web Server这样的命令行工具,并将其与脚本结合使用。
2.定义您自己的协议
另一种解决方案是简单地指定您自己的协议,并将其分配给可执行文件,例如您的脚本或某种调度器,该可执行文件根据您传递的参数启动其他应用程序。这个答案描述了如何在windows中定义您自己的协议。您也可以查看相应的windows文档
如果你能用JavaScript从浏览器中调用自定义协议,这在很大程度上取决于你的浏览器,也许还取决于它的安全设置。你需要检查一下你的环境。
安全
无论使用何种解决方案,赋予网页运行应用程序甚至执行代码的能力都会引发严重的漏洞。如果攻击者发现了你的协议、网络服务器等,当你访问他们控制的网站时,他们可以很容易地注入自己的东西。这就是为什么您至少应该实现两件事:
a) 使用某种身份验证机制(例如HMAC)。这使得剥削至少有点困难
b) Never直接将参数作为代码执行。始终分析它们并检查它们的完整性。
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 借助asp.net验证或java脚本对多个文本进行验证
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- Java脚本时间添加
- 不显示带有本地json文件数据的谷歌地图脚本
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 从远程脚本获取用户IP
- 如何根据时间运行不同的脚本
- 如何将字符串值从php页面发送到java脚本页面
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- 当脚本由system.js加载时,如何要求('electron')
- HTML标记在脚本标记中工作
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 使用谷歌应用程序脚本从工作表中获取值并将其显示在文本框中
- 显示时间的脚本
- ng应用程序使脚本无限运行
- 如何在运行时在angular 2中加载外部js脚本
- Google Adsense多次加载脚本
- 如何使用JavaScript激活AutoHotkey脚本