0

我需要一个 javascript 函数来触发在 Lazarus 中为 OSx 和 windows 开发的应用程序中的函数。我正在学习 Lazarus,我将自己描述为一个中等水平的初学者。我对javascript知之甚少。

据我了解,javascript 运行沙盒,因此无法直接访问应用程序。因此,我正在考虑使用某种从 javascript 到应用程序的 tcp 调用,传递一个参数,当接收到该参数时,将触发事件。这需要在 Windows 和 Mac 上都有效。理想情况下使用相同的组件/代码,但如果这是不可能的,那么我需要做什么。

我的问题是:

1)这听起来像正确的方法吗?2)如果是这样 - 实现这一目标的最佳方式和组件是什么?

我一直在研究突触——但老实说,我有点迷失了我需要使用和阅读哪些组件来设置它。

所以本质上 - javascript需要向我的应用程序发送一个参数,然后在收到它时采取行动。

如果您能提供帮助,请提前致谢。

4

2 回答 2

1

我只是快速搜索了一下,在我看来,Adobe Photoshop 脚本并不完全是 javascript,而是它的一个变体,称为 ExtendScript。有一些语言指南,你可以找到(比如这个),但也执行快速谷歌搜索打开了这个页面这个页面,它描述了一个File.execute可以用来执行外部应用程序的命令,这可能是最好的途径.

我关于服务器的问题提出了另一种选择,如果您正在运行服务器,则可以使用 URL 从 javascript 调用它。然后服务器可能有更多的权限来处理事件。

很抱歉只是将您发送到其他站点和方向以尝试解决此问题,但这是一个相当具体的领域。

于 2013-04-24T19:20:21.397 回答
0

您可能需要阅读有关 JavaScript 的更多信息,因为它有许多限制,例如无法访问本地文件,无法与来自同一域的服务器进行通信,以下链接可能会给您一个更好的主意:

http://en.wikipedia.org/wiki/Same_origin_policy

http://javascript.about.com/od/reference/a/cannot.htm

HTML5 websockets 可能是一条路径,但尚未在所有浏览器中得到广泛支持:

http://www.html5rocks.com/en/tutorials/websockets/basics/

编辑:

现在您提供了更多详细信息,您可以在应用程序中创建一个线程,该线程将检查文件或理想情况下的表,当他获取您的 javascript 或(Ajax)查询时,服务器端将写入该文件,要求他触发信号你的申请。

有很多方法可以做到这一点,我在其中一种最简单、更先进的方法中提到的方法是向您的应用程序发送信号。(从您的服务器向应用程序发送信号。)数据库解决方案具有更多优势,您可以为参数指定列,并且您将拥有更大的灵活性,一旦您处理了来自该共享表的请求,您就可以标记该行。

以下是实现表的一种方法(已处理是表示您的信号是否已被处理的标志 - 您也可以在处理后删除该行):

| 信号标识 | 论据 | application_id | 日期时间 | 已处理(标志 0 或 1)|

于 2013-04-23T23:07:54.293 回答