【问题标题】:Run another Local application in ASP.net website在 ASP.net 网站中运行另一个本地应用程序
【发布时间】:2012-07-27 06:21:17
【问题描述】:

如何通过 ASP.net 网站运行另一个本地应用程序(使用 c# 开发的应用程序)并将参数发送到本地应用程序(例如名称,源文件)?

(我知道这样做会有安全风险,但我会考虑建议)提前致谢,

【问题讨论】:

    标签: c# javascript asp.net asp.net-mvc


    【解决方案1】:

    您可以像 Skype 一样处理自己的 URL 协议:

    phone://123546
    localapp://data
    

    然后创建一个链接

    <a href="localapp://data">Open App</a>
    

    或尝试在服务器端重定向

    Response.Redirect("localapp://data");
    

    and handle it

    示例:

    本地应用程序(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>
    

    【讨论】:

    • 我们实际使用过它,它就像一个魅力。但它仅限于简单的参数
    • 你能给我举个例子吗?提前致谢!
    • 我添加了一个非常基本的示例。如果您在 Google 上搜索“处理自定义 url 协议”,您可能会发现一些有用的东西。
    【解决方案2】:

    你的意思是在服务器还是在客户端启动本地程序?

    您可以在服务器上start a process 并将命令行参数传递给您需要访问的信息。

    【讨论】:

    • 不可能。浏览器安全限制。
    • @nunespascal - 嗯...也许是一个 ActiveX 控件(那些甚至还在吗?)无论哪种方式,这听起来都是个坏主意。
    • 我需要为每个 PDF 运行一个评论工具程序。这就像一个作者校对程序,每篇文章都将由其作者进行检查。
    • @Tommy 网络上什么都没有。 IE9 仍然支持它们,尽管您必须为网站明确启用它们。
    • @nunespascal - 有效点。我从未使用过它们,所以不确定它们是否还在附近:)
    【解决方案3】:

    由于大多数现代浏览器的安全限制,这是不可能的。

    如果您可以限制您的用户使用 IE(非常糟糕的做法),ActiveX 控件可以做到这一点。这是一个小代码sn-p。

    <SCRIPT Language="JScript">
    function runcmd() {
    File="cmd.exe";
    WSH=new ActiveXObject("WScript.Shell");
    WSH.run(File);
    }
    </SCRIPT>
    

    【讨论】:

    • 是的。我知道这一点,但我认为我不能限制它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    • 2017-07-17
    • 2016-10-16
    • 1970-01-01
    • 2019-05-06
    • 2010-10-16
    相关资源
    最近更新 更多