【问题标题】:How to trigger a desktop application from my website?如何从我的网站触发桌面应用程序?
【发布时间】:2010-07-26 19:24:14
【问题描述】:

我需要在我的外部网站的管理端单击一个按钮,并使其触发我本地工作站中的应用程序(使用基于按钮的参数)。我可以完全控制服务器、PHP 等。我还可以在我的工作站上安装任何应用程序。做这个的最好方式是什么? Adobe AIR/Flash?爪哇?

我需要一些简单的东西,我对所有想法持开放态度。

【问题讨论】:

  • 我意识到您的申请可能是合法的。但读完后,我想“这就是世界所需要的:又一个病毒安装程序!”
  • 看到这个问题 (stackoverflow.com/questions/2730301/…),我问了一些非常相似的问题。我最终使用了一个签名的 Java 小程序。由于安全原因,Flash 做不到,ActiveX 只能在 IE 上工作,而且我不想为这么简单的东西学习 adobe-air。 Java 小程序的工作就像一个冠军!
  • 理想情况下我需要支持所有平台和所有浏览器。
  • 小心避免命令行 [line] 注入和重新利用漏洞。

标签: java html flash air


【解决方案1】:

您可以从已签名的 Java 小程序启动程序。试试这样的:

String cmd = "notepad.exe";

try {
  Runtime rt;
  rt = Runtime.getRuntime();
  Process p = rt.exec( cmd );
  System.out.println( "Exit Value = " + p.waitFor() );
} catch ( IOException e ) {
  e.printStackTrace();
} catch ( InterruptedException e ) {
  e.printStackTrace();
}

【讨论】:

  • 可能值得一提的是,这仅适用于已签名的小程序或安全设置严重受损的 Java 安装。
  • 注明。我仍然很确定这是做到这一点的“最佳”方式,而无需用户跳过诸如注册 uri 方案处理程序等晦涩难懂的环节。
【解决方案2】:

可能最简单的做法是使用 HTTP 以外的协议。例如,Apple 使用 webcal:// 网址打开 iCal 并订阅日历。您的应用程序将获取传递给它的 URL,您可以根据 URL 中的数据做任何您想做的事情。

这是关于如何使用 Mozilla 进行此操作的文章:

https://developer.mozilla.org/en/web-based_protocol_handlers

【讨论】:

    【解决方案3】:

    您可以Register an Application to a URL Protocol(已提供 Windows 链接)。

    【讨论】:

      【解决方案4】:

      您可以在 Java 中通过让工作站上的侦听器监视站点管理员的小程序写入的文件来执行此操作,但这可能很难。

      如果您还没有 Flash CS4 或更高版本,Flash/AIR 会更痛苦,但如果您有,可能会更容易。我不知道有什么方法可以在 Flash 和 AIR 之间直接通信,但那里可能有一些东西。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-18
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多