如何使用超链接运行外部程序,例如记事本?

Nam*_* VU 20 html

我正在通过C#生成一个HTML报告来打印一个包含3列的表中的文件对:前两列用于文件名,第三列是超链接比较 - 我希望此链接运行WinMerge以比较两个文件,我目前不知道该怎么做.

Nam*_* VU 21

试试这个

<html>
    <head>
        <script type="text/javascript">
        function runProgram()
        {
            var shell = new ActiveXObject("WScript.Shell");                 
            var appWinMerge = "\"C:\\Program Files\\WinMerge\\WinMergeU.exe\" /e /s /u /wl /wr /maximize";
            var fileLeft = "\"D:\\Path\\to\\your\\file\"";
            var fileRight= "\"D:\\Path\\to\\your\\file2\"";
            shell.Run(appWinMerge + " " + fileLeft + " " + fileRight);
        }
        </script>
    </head>

    <body>
        <a href="javascript:runProgram()">Run program</a>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)


Nic*_*ver 13

对不起,这个答案很糟糕,但你不能通过点击启动任何外部应用程序,因为这将是一个严重的安全问题,这个功能在HTML或javascript中不可用.想想刚刚cmd.exe使用args 启动...你想用参数启动WinMerge,但你可以看到通过允许任何事情引入的安全问题.

唯一的可能是可行的例外,我能想到的将是一个协议处理程序(因为这些明确定义的处理器),如winmerge://,但最好的方式传递2个文件参数我不知道,如果它是很值得探讨的一个选项,但我不确定你是或不允许对客户做什么,所以这可能是一个非首发解决方案.


Jak*_*mpl 7

从HTML启动应用程序的合理方法是通过url方案.因此,您可以通过mailto:链接和irc通过irc:链接启动电子邮件.各个应用程序可以实现这些方案,但我不确定WinMerge是否这样做.


小智 5

制作一个批处理文件,然后在Window.open中调用bacth文件。这是如何运作的

  1. 在记事本中制作文件
  2. 编写脚本:启动wmplayer“ \ dotnet \ sc \ 1234.mp4” / fullscreen
  3. 另存为:\ dotnet \ sc \ test.bat中的test.bat

在HTML

window.open('file://dotnet/sc/test.bat')

请享用..