Запустите программу с локальной веб-страницы - PullRequest
7 голосов
/ 24 марта 2011

Я пытаюсь использовать веб-страницу в качестве точки входа для киоска.HTML будет запускаться локально, мне нужно две вещи:

<a href="c:\Users\Admin\Documents">...

, который работает как шарм

И ..

<a href="c:\Program Files\Windows Live\Mail\wlmail.exe">...

(программа просто примервсе программы одинаковы)

Что работает, но ... он предлагает загрузить файл, а затем вам предлагается запустить его. Есть ли способ сделать это напрямую, например, щелкнуть и нажать на кнопку, которую вы открыли блокнотом.EXE?Может быть, с помощью Java-апплета?

Спасибо

Спасибо

РЕДАКТИРОВАТЬ:

Я знаю, что это не может быть сделано удаленноЯ говорю о локальных файлах.Файл будет доступен как c: \ myhtml.html и откроет ТОЛЬКО уже установленные файлы, ничего из Интернета.

Ответы [ 5 ]

7 голосов
/ 18 января 2012

Если я правильно понял ваш вопрос, самое близкое, что вам нужно, это использовать * .hta, HTML-приложение, которое работает вне окна браузера, как обычное приложение.

<script type="text/javascript" language="javascript">
    function RunFile() {
    WshShell = new ActiveXObject("WScript.Shell");
    WshShell.Run("c:/windows/system32/notepad.exe", 1, false);
    }
</script>

Немного больше информации здесь: http://www.kunal -chowdhury.com / 2010/09 / как выполнить локальный файл-using-html.html

3 голосов
/ 20 октября 2014

Правильный способ реализовать это - создать собственный протокол в Windows.Подробности в статье MSDN «Регистрация приложения в схеме URI»

1 голос
/ 23 января 2014

Это, конечно, проблема безопасности. Но это не проблема, причина, по которой он хочет сделать это, явно другая проблема.

Остается вопрос: КАК выполнить внешнюю программу со стороны КЛИЕНТА / СЕРВЕРА?

Я нашел несколько подсказок:

  • ActiveX: специфично для IE, поэтому не очень хорошо,
  • Серверные фреймворки JavaScript, такие как Node.js: Серверная сторона? Я даже не знаю эту структуру ... ^^ ',
  • Кроссбраузерные аддоны, которые могут расширить возможности, здесь тоже не мой домен,
  • В Media player classic вы можете заставить его прослушивать порт, а затем использовать его для вызова программы, используя специальные URL-адреса команд, довольно приятные, но специфичные для программного обеспечения.

Я нашел множество других классных уроков, но работа довольно тяжелая: каждый раз, когда мне приходится открывать и изучать другую технологию.

1 голос
/ 24 марта 2011

Поправь меня, если я тебя не понял.Если вы запускаете веб-страницу локально (http: \ 127.0.0.1) и хотите выполнить программу на том же компьютере, это будет зависеть от используемой вами технологии, например, в php вы можете использовать exec ()выполнить программу при вводе пользователем, но она будет выполняться на стороне сервера.

1 голос
/ 24 марта 2011

Нет, это проблема безопасности, браузеры не допускают ее, потому что это может быть угрозой безопасности для запуска приложений без приглашения, просто нажав на ссылку.

Существует несколько технологий, таких как java WebStart и ASPClickOnce - приложение будет установлено более или менее автоматически, подписывание приложения также помогает - сообщения, которые пользователь получает, выглядят менее пугающими.

...