Как запустить внешнюю программу, например, блокнот, с помощью гиперссылки?

Я генерирую отчет HTML C# для печати пар файлов в таблице, которая имеет 3 столбца: первые два столбца, используемые для имен файлов и 3-й столбец, являются гиперссылкой, Выдерживают сравнение - я хочу, чтобы эта ссылка выполнила WinMerge для сравнения с двумя файлами, и я в настоящее время не знаю, как сделать это.

20
задан Julian E. 20 December 2015 в 13:58
поделиться

3 ответа

Попробуйте это

<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>
21
ответ дан 29 November 2019 в 23:19
поделиться

Извините, что ответ неудачный, но вы не можете запустить любое внешнее приложение через щелчок мыши, так как это было бы серьезной проблемой безопасности, эта функциональность недоступна в HTML или javascript. Подумайте о запуске cmd.exe с аргументами... вы хотите запустить WinMerge с аргументами, но вы можете увидеть проблемы безопасности, возникающие при разрешении этого для чего угодно.

Единственным возможным исключением, о котором я могу думать, может быть обработчик протокола (поскольку это явно определенные обработчики), например winmerge://, хотя лучший способ передать 2 параметра файла я не знаю, если это вариант, то его стоит рассмотреть, но я не уверен, что вам разрешено или запрещено делать с клиентом, так что это может быть нестандартным решением.

13
ответ дан 29 November 2019 в 23:19
поделиться

Разумный способ запуска приложений из HTML - это схемы url. Таким образом, вы можете запускать почту через mailto: ссылки и irc через irc: ссылки. Отдельные приложения могут реализовывать такие схемы, но я не уверен, что WinMerge делает это.

7
ответ дан 29 November 2019 в 23:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: