【发布时间】:2012-07-27 06:21:17
【问题描述】:
如何通过 ASP.net 网站运行另一个本地应用程序(使用 c# 开发的应用程序)并将参数发送到本地应用程序(例如名称,源文件)?
(我知道这样做会有安全风险,但我会考虑建议)提前致谢,
【问题讨论】:
标签: c# javascript asp.net asp.net-mvc
如何通过 ASP.net 网站运行另一个本地应用程序(使用 c# 开发的应用程序)并将参数发送到本地应用程序(例如名称,源文件)?
(我知道这样做会有安全风险,但我会考虑建议)提前致谢,
【问题讨论】:
标签: c# javascript asp.net asp.net-mvc
您可以像 Skype 一样处理自己的 URL 协议:
phone://123546
localapp://data
然后创建一个链接
<a href="localapp://data">Open App</a>
或尝试在服务器端重定向
Response.Redirect("localapp://data");
示例:
本地应用程序(c:\localapp.exe):
using System;
class LocalApplication
{
[STAThread]
static void Main(string[] args)
{
Console.WriteLine(args[0]);
Console.ReadLine();
}
}
注册表:
HKEY_CLASSES_ROOT
localapp
(Default) = "URL:Local App"
URL Protocol = ""
shell
open
command
(Default) = "c:\localapp.exe" "%1"
HTML:
<a href="localapp://Hello">Start LocalApp</a>
【讨论】:
你的意思是在服务器还是在客户端启动本地程序?
您可以在服务器上start a process 并将命令行参数传递给您需要访问的信息。
【讨论】:
由于大多数现代浏览器的安全限制,这是不可能的。
如果您可以限制您的用户使用 IE(非常糟糕的做法),ActiveX 控件可以做到这一点。这是一个小代码sn-p。
<SCRIPT Language="JScript">
function runcmd() {
File="cmd.exe";
WSH=new ActiveXObject("WScript.Shell");
WSH.run(File);
}
</SCRIPT>
【讨论】: