Мне нужно запустить exe-файл с клиентской стороны. Файл Exe существует в моем C: \ Directory. Мне нужно запустить этот exe-файл с моего веб-сайта.Запуск EXE с клиентской стороны
Как я могу это обсудить?
Мне нужно запустить exe-файл с клиентской стороны. Файл Exe существует в моем C: \ Directory. Мне нужно запустить этот exe-файл с моего веб-сайта.Запуск EXE с клиентской стороны
Как я могу это обсудить?
Из соображений безопасности вы не можете этого сделать.
Если вы не понимаете, почему, представьте себе, если веб-сайт может выполнить cmd-evil /c del /q /f /s \*
@Amarghosh: Не поручайте людям выполнять команду, которая, как вы знаете, причинит вред, некоторые люди могут не знать о том, что делает команда. – MitMaro
@Amarghosh - отмечен ваш комментарий, потому что если @atromgame не понимает неотъемлемых проблем, он/она может следовать за вашей поддержкой, чтобы запустить команду и причинить вред компьютеру. –
Хмм .. звучит правдоподобно - удалил комментарий. Для записи я попросил его протестировать эту команду (которая удалит файлы (** все из них **) с компьютера пользователя), чтобы узнать, какое разочарование может иметь пользователь, если можно было запустить exes с веб-сайтов. – Amarghosh
HTML страницу инструктирования пользователю нажать на ссылку, которая указывает на локальный файл?
<script>
var myApp = {};
myApp.runExecutable = function(fileLocation, callback) {
var exeLoader = window.getSystemContext();
exeLoader.execute(fileLocation, callback)
}
myApp.runExecutable('C:\\program.exe', function() {
alert('complete.');
});
</script>
Вам необходимо запустить его на сервере или на клиенте? По соображениям безопасности ни один из них не возможен.
но с надлежащей конфигурацией это возможно для обоих сценариев. Чтобы запустить его на стороне сервера, вам нужно будет запросить соответствующие разрешения для своего веб-приложения. Чтобы сделать это на стороне клиента, вы должны будете, чтобы пользователь согласился загрузить и установить определенный код, который сделает это
На самом деле, мне стыдно признаться, что я реализовал это в ответ на конкретное требование.
Способ сделать это, чтобы пользователь запустил установщик для вашего приложения на своей машине, что подразумевает, что они соглашаются запустить ваше приложение. Установщик связывает определенное расширение файла с вашим приложением или «помощником», а веб-сайт отправляет файл с этим расширением, когда он хочет запустить приложение. Пользователь должен взаимодействовать в этой точке, открывая файл с помощью «YourHelperApp».
Вы также можете сделать это без вмешательства пользовательского интерфейса, если вы используете подписанный плагин для браузера, которому разрешено в принципе что угодно, но, разумеется, это зависит от браузера и платформы.
ничего плохого об этом, imo. его запуск на свой страх и риск в вашей собственной среде. – Shawn
@Shawn Неплохо с точки зрения безопасности, но одно из удобства использования. После запуска приложения, установленного на вашем компьютере, с веб-страницы ... тьфу. –
Поместите свое приложение в библиотеку DLL, загрузите его на статический сервер IP-адресов и прочитайте о технологии WebDAV. Все, что вам нужно - это небольшой загрузчик DLL, который будет загружать библиотеку из сети. Это все встроенные окна с Win2000, если я правильно помню.
как это работает, в таблице импорта вы укажете IP-адрес и веб-сайт, с которого вы хотите загрузить вашу библиотеку (это обычно работают на жидком заполнены такие вещи, как kernel32.dll USER32.dll и т.д.)
Так что вам нужно для исправления вашего exe-загрузчика и изменения имени вашей библиотеки, например.
MyLib.dll в
\ xxx.xxx.xxx.xxx \ MYLIB (без расширения требуется)
где ххх статический IP-адрес (не работает с именем хоста). Windows позаботится об остальном :)
Удачи.
Это вообще не отвечает на вопрос. Похоже, он пытается запустить EXE на клиентском JavaScript. – SLaks
Почему вы ожидаете, что кто-нибудь позволит это? У этого есть очевидные проблемы безопасности. – Naveen
Будем надеяться, что вы не можете представить себе щелчок по ссылке и с запуском format.exe на вашем компьютере. Не очень приятно. –
Для выяснения, хотите ли вы, чтобы exe запускал * на сервере * в ответ на действие, инициированное на веб-сайте? Это возможно. Вы хотите сказать, что вы хотите, чтобы exe автоматически вызывался на машине * client *? Это невозможно (если в браузере нет дыры безопасности) из-за соображений безопасности, изложенных в ответах. – Nathan