Как запустить внешнюю программу, например блокнот, используя гиперссылку? - PullRequest
18 голосов
/ 10 мая 2010

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

Ответы [ 5 ]

20 голосов
/ 10 мая 2010

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

<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>
14 голосов
/ 10 мая 2010

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

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

7 голосов
/ 10 мая 2010

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

3 голосов
/ 13 марта 2019

Я написал небольшое расширение для этого.

Поскольку вы создаете страницу с использованием C #, вы можете реализовать это:

https://github.com/felix-d-git/DesktopAppLink

Обычно вы создаете некоторые записи в реестре для анализа ссылок, которые вы нажимаете на своей HTML-странице.

Браузер попросит открыть указанное приложение.

C #:

DesktopAppLink.CreateLink("applink.sample", "\"<path to exe>\"", "");

HTML:

<a href="applink.sample:">Run Desktop App</a>

Результат:

enter image description here

3 голосов
/ 23 февраля 2014

Создайте командный файл и вызовите файл bacth в Window.open. Вот как это работает

  1. сделать файл в блокноте
  2. напишите свой скрипт: запустите wmplayer "\ dotnet \ sc \ 1234.mp4" / fullscreen
  3. сохранить как: test.bat в \ dotnet \ sc \ test.bat

в html

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

Наслаждайтесь ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...