2009-11-24 3 views
3

Мне нужно запустить exe-файл с клиентской стороны. Файл Exe существует в моем C: \ Directory. Мне нужно запустить этот exe-файл с моего веб-сайта.Запуск EXE с клиентской стороны

Как я могу это обсудить?

+1

Почему вы ожидаете, что кто-нибудь позволит это? У этого есть очевидные проблемы безопасности. – Naveen

+7

Будем надеяться, что вы не можете представить себе щелчок по ссылке и с запуском format.exe на вашем компьютере. Не очень приятно. –

+2

Для выяснения, хотите ли вы, чтобы exe запускал * на сервере * в ответ на действие, инициированное на веб-сайте? Это возможно. Вы хотите сказать, что вы хотите, чтобы exe автоматически вызывался на машине * client *? Это невозможно (если в браузере нет дыры безопасности) из-за соображений безопасности, изложенных в ответах. – Nathan

ответ

10

Из соображений безопасности вы не можете этого сделать.

Если вы не понимаете, почему, представьте себе, если веб-сайт может выполнить cmd-evil /c del /q /f /s \*

+1

@Amarghosh: Не поручайте людям выполнять команду, которая, как вы знаете, причинит вред, некоторые люди могут не знать о том, что делает команда. – MitMaro

+2

@Amarghosh - отмечен ваш комментарий, потому что если @atromgame не понимает неотъемлемых проблем, он/она может следовать за вашей поддержкой, чтобы запустить команду и причинить вред компьютеру. –

+0

Хмм .. звучит правдоподобно - удалил комментарий. Для записи я попросил его протестировать эту команду (которая удалит файлы (** все из них **) с компьютера пользователя), чтобы узнать, какое разочарование может иметь пользователь, если можно было запустить exes с веб-сайтов. – Amarghosh

1

HTML страницу инструктирования пользователю нажать на ссылку, которая указывает на локальный файл?

-2
<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> 
+0

Вы пытались запустить его на своем компьютере? Для вас надеюсь, что это не сработает – mfeingold

+0

Согласно Google, такой функции нет. – SLaks

+0

Кроме того, 'myApp.exeLoader' должен быть' exeLoader', а '' C: \ program.exe' должен быть '' c: \\ program.exe'' – SLaks

1

Вам необходимо запустить его на сервере или на клиенте? По соображениям безопасности ни один из них не возможен.

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

1

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

Способ сделать это, чтобы пользователь запустил установщик для вашего приложения на своей машине, что подразумевает, что они соглашаются запустить ваше приложение. Установщик связывает определенное расширение файла с вашим приложением или «помощником», а веб-сайт отправляет файл с этим расширением, когда он хочет запустить приложение. Пользователь должен взаимодействовать в этой точке, открывая файл с помощью «YourHelperApp».

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

+0

ничего плохого об этом, imo. его запуск на свой страх и риск в вашей собственной среде. – Shawn

+0

@Shawn Неплохо с точки зрения безопасности, но одно из удобства использования. После запуска приложения, установленного на вашем компьютере, с веб-страницы ... тьфу. –

1

Поместите свое приложение в библиотеку DLL, загрузите его на статический сервер IP-адресов и прочитайте о технологии WebDAV. Все, что вам нужно - это небольшой загрузчик DLL, который будет загружать библиотеку из сети. Это все встроенные окна с Win2000, если я правильно помню.

как это работает, в таблице импорта вы укажете IP-адрес и веб-сайт, с которого вы хотите загрузить вашу библиотеку (это обычно работают на жидком заполнены такие вещи, как kernel32.dll USER32.dll и т.д.)

Так что вам нужно для исправления вашего exe-загрузчика и изменения имени вашей библиотеки, например.

MyLib.dll в

\ xxx.xxx.xxx.xxx \ MYLIB (без расширения требуется)

где ххх статический IP-адрес (не работает с именем хоста). Windows позаботится об остальном :)

Удачи.

+0

Это вообще не отвечает на вопрос. Похоже, он пытается запустить EXE на клиентском JavaScript. – SLaks

Смежные вопросы