如何从网站在客户端上执行应用程序?

Posted

技术标签:

【中文标题】如何从网站在客户端上执行应用程序?【英文标题】:How to execute an application on the client from a website? 【发布时间】:2011-12-10 11:45:37 【问题描述】:

我有一个位于服务器上的 ASP.NET / C# 应用程序,我的问题是如何在访问该网站的客户端(服务器上的应用程序)中运行另一个应用程序 (.exe)

问题

(client)------------(server)
run browser         website 
   and              (asp.net/c#)
**execute           instruction     
app.exe**           for execute app.exe 

我开发了 ext.net,一个使用 asp.net + c# 的软件,它是 powerbuilder 中旧软件的更新版本(v2 是新软件,v1 是 powerbuilder 软件)。 V2 没有 V1 包含的所有功能,所以在执行 V2 之后,我必须执行 V1。所以如果用户在浏览器上使用V2,我应该能够打开V1(V2位于服务器中,V1安装在客户端。由于客户端打开浏览器连接到V2)。

*用谷歌翻译

desarrollé un software en ext.net(asp+c#) el cual es una version actualizada de otro software anterior hecho en PowerBuilder (los llamaré v2 y v1 respectivamente)。 Por razones de tiempo, el software V2 no tiene todas las funcionalidades de V1, por lo cual, al finalizar el procedimiento con V2 se debe abrir V1。 Vale decir, estando en el browser usando V2 debiera poder abrir V1 (.exe)

【问题讨论】:

如果您想要完成的是,您不能从浏览器执行.exe javascript 中我看到了示例但不起作用 你能更清楚V2是运行在服务端还是客户端? V1现在如何运行???如果这两个版本都需要安装,那为什么还要去一个网站启动呢? V2 位于服务器中,V1 安装在客户端中。由于客户端打开浏览器连接到 V2 【参考方案1】:

在这个方向上你唯一能做的就是给应用程序一个链接,这样用户就可以决定点击它,下载文件并在本地执行它。

显然 Sys Internals 会这样做,请在此处查看:Windows SysInternals

但事实上,他们的实时服务只是为您提供了此页面的链接:http://live.sysinternals.com/,然后您可以从那里下载并在本地执行。

【讨论】:

mmmm,这个解决方案不可行,例如,如果我下载/执行一个 .exe 文件,相关文件(例如 dll)位于客户端中,在我的情况下是可能的,但如果我执行1000次,.exe在客户端计算机中创建1000次(.exe,.exe(1),.exe(2),.exe(3)....exe(999))【参考方案2】:

很遗憾,由于安全原因,这是不可能的。如果有可能,黑客可能会对客户端计算机造成严重破坏。但是,您可能能够,也可能是,在较旧的 IE 版本上使用 ActiveX。这可能需要将安全设置降低到最低限度。这是任何方式的链接:

http://www.governmentsecurity.org/forum/index.php?showtopic=23488

【讨论】:

我会将这个措辞改为“幸运的是这是不可能的”。 +1 根据他的需要,ActiveX 可以满足他的需要,而不会“将安全性降低到最低限度”。 ActiveX 的创建正是为了做他想做的事,在 Web 会话的客户端运行可执行代码。 @Scott Chamberlain 我尝试在 Windows 7 上的 IE9 上运行示例,并将 UAC 设置为略高于最低安全性。它没有用。 @kush.impetus 我不是指上面的例子。我的意思是将他的应用程序转换为适当的 ActiveX 应用程序。不只是使用 ActiveX 来启动他的 .exe @Scott Chamberlain :抱歉,我不知道这样的事情。顺便说一句,您能否提供一个链接来支持您的答案?它可能对我的一个项目有用。【参考方案3】:

申请的目的是什么,点击一下可能是解决办法。

http://msdn.microsoft.com/en-us/library/t71a733d(v=vs.80).aspx

您不能直接从浏览器执行代码这一事实并非不幸,它是一项出色的安全功能。

【讨论】:

【参考方案4】:

我们需要更多关于您的 exe 需要做什么的详细信息,因为它会影响您使用的技术,但正确的方法是:

    使用 ActiveX。让用户安装一次您的 ActiveX 控件,然后您就可以运行它了。 ActiveX 基本上是在客户端计算机上为您运行一个 DLL。沙盒存在一些限制,而且由于它仅支持 IE,而且越来越多的互联网不使用 IE,因此它正在失宠。 使用 Silverlight。这将更容易编程,并且更像您熟悉的内容。但是(我认为)它比 ActiveX 有更多的沙盒限制,但它支持跨浏览器和跨平台。

Microsoft All-In-One Code Framework 包含 ActiveX 和 Silverlight 的示例。我建议尝试All-In-One Sample Browser,它的边缘有点皱褶,但它可以工作。 There is a VS2010 extension too 但它不适用于 VS2010 的 express 版本或 VS2008。

有关如何为网页设置 ActiveX 的简单示例,请参见示例 htmlEmbedActiveX。我不知道有什么具体的 Silverlight 示例可以指点您。

请在您的主要帖子中提供更多详细信息,说明您在客户端实际尝试执行的操作,我可以告诉您其中一种方法是否可行。

【讨论】:

Scott,我的情况如下...我用EXT.NET(asp+c#)开发了一个软件,这个软件是老程序的第二版,由于时间原因,我的软件没有有代码行到打印机(要打印的各种格式),作为旧程序,因为我们重用旧程序......因此,我在浏览器(chrome)中执行新软件,使用完整,然后运行旧程序(从新程序开始执行版本) 很抱歉,我很难理解您的英语。另外,请通过单击原始问题上的编辑来发布此信息,您可能想在发布之前尝试重新阅读并重新编写此声明。我不明白你在说什么。你可能想在你的主要问题下放一份用你的母语解释的副本。我们不允许使用英语以外的其他语言提问,但同时使用英语和您的母语发帖可能会帮助一些阅读您问题的人更好地理解您。【参考方案5】:

@Scott Chamberlain:这就是我能够解释原始问题的方式:

我有一个在服务器上运行的 ASP.NET / C# 应用程序。我想要的是运行其他应用程序(.EXE),但在访问相关服务器的客户端上

问题

(client)------------(server)
run browser         website 
   and              (asp.net/c#)
**execute           instruction     
app.exe**           for execute app.exe 

该应用程序是在 EXT.NET (ASP + C#) 中开发的,它是 PowerBuilder 中另一个旧应用程序的更新版本。 (我们分别称它们为 V2v1)。

目前V2具备V1的所有功能,所以在程序结束时应该打开V1和V2。即在同时使用V1和V2的浏览器中应该可以在客户端打开.EXE。

最后一段我完全看不懂

【讨论】:

我编辑了向后翻译的问题(从西班牙语到英语).. 不幸的是,由于我没有完全的权限,您将不得不等待阅读它.. 无论如何西班牙语版本有一些问题(我要求澄清,请参阅我的评论)...【参考方案6】:

如果您将 V1 应用程序定义为 URL 处理程序,那么您可以从任何最近的 Web 浏览器调用它。无需 ActiveX!

这很完美。我将它用于从 Web 应用程序到正在运行的 PB win32 应用程序的应用程序到应用程序链接。我有一个单独的 PB win32 应用程序作为 URL 处理程序。 URL 处理程序查找正在运行的应用程序。如果它找到正在运行的应用程序,它会向该主应用程序发送一个事件。它不会启动从网站发送命令作为命令行参数的主应用程序。完美运行!

【讨论】:

以上是关于如何从网站在客户端上执行应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

防止欺骗攻击 - 如何确保我的客户收到来自真实服务器的订单?

如何在 ASCX 页面上的 ASP 网站上从 C# 代码执行 url 调用?

Google Chrome扩展程序与安全网站交互

如何从托管在另一台服务器上的 Web 应用程序调用客户端计算机托管的 Wcf 服务?

如何使用 WinAPI 和 C++ 从 Windows 系统上的服务通知客户端应用程序?

如何使用凭据连接到SharePoint列表使用客户端对象模型?