【问题标题】:invoke a local application from a website and pass some parameters从网站调用本地应用程序并传递一些参数
【发布时间】:2012-04-17 14:04:31
【问题描述】:

我有一个网站需要在访问者的本地计算机上执行一个小应用程序(他们有 Windows 7)。我将在他们的计算机上安装此应用程序。

网站在调用此应用程序后,需要将一些参数(如姓名、电话...)传递给应用程序以打印它们。

我找到的解决方案是使用 Internet Explorer 和 ActiveXObject。名称、编号...将作为参数传递。

但我不确定用户是否来自中国并且通过 ActiveXObject 将他/她的名字写在汉字网站上是否能够将其作为参数发送到应用程序。

此解决方案还阻止我使用谷歌浏览器或其他浏览器。我发现我可以用 Mozilla FF 做同样的事情,但不确定我是否可以在 google Chrome 中做同样的事情(网站用户体验更好)。

我已经阅读了谷歌浏览器的 NPAP,但我认为应用程序必须用 C 或 C++ 编写,我的是用 C# 编写的。 ¿ 有人可以确认吗?

所以我对将外来字符传递给这个应用程序以及在 google chrome 中实现它的方法很感兴趣。可以调用应用程序(将信息作为参数传递)或使用 Web 服务与该应用程序通信。打印完成后应用程序必须关闭浏览器并重新启动它(我的网站将被设置为默认页面)。

【问题讨论】:

  • 从网站调用本地应用程序不是一个好主意。我不知道您的具体限制,但从自上而下的角度来看,这似乎不是一个好方法。 >
  • 您最好创建一个打印友好的页面,其中包含您需要的内容。如今,几乎所有浏览器都可以打印,并且您可以制作特定于打印的 css。

标签: c# javascript web-services


【解决方案1】:

您最好的选择可能是在您的页面上安装和使用带有此协议的链接时,将您的应用程序注册为协议处理程序(想想电子邮件客户端如何服务于 mailto: 或 torrent 客户端如何服务于磁力:链接)。由于您同时控制发送方和接收方,因此您可以在其中传递几乎任何信息。您可以在MSDN 找到注册句柄的 Windows 示例。如果您需要它用于任何其他系统,我很确定搜索“system_or_gui_name 注册协议处理程序”会首先显示您想要的结果。

【讨论】:

  • 好主意 - 当您看到 ActiveX 时不会撞到混凝土墙 +1。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-12
  • 2014-04-15
  • 2012-06-11
  • 1970-01-01
  • 2019-03-28
  • 2011-05-12
  • 1970-01-01
相关资源
最近更新 更多