запустить exe-файл, который установлен на клиентском компьютере из веб-браузера - PullRequest
0 голосов
/ 19 сентября 2011

У меня есть небольшой исполняемый файл, написанный на VB.NET, который подключается к базе данных, получает последний ряд и отправляет информацию на принтер.Это лишь небольшая часть программы, но она использует специальный шрифт, а также вычисляет ширину для принтера.

Я разработал ту же программу с PHP.Теперь почти все его функции одинаковы с Windows-программой.Но результаты печати веб-браузера не могут быть такими же, как у файла exe.Поэтому я хочу просто отправить параметр в исполняемый файл и запустить его.(с помощью вызова javascript или другого) Exe-файл находится на клиентском компьютере, и я буду знать, где он находится.

Можете ли вы предложить мне способ сделать это.Я читал, что это возможно с помощью DLL или OCX.

Я не знаком с разработкой плагинов для браузера.Есть ли учебник или книга для этого?Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 19 сентября 2011

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

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

Существуют библиотеки pdf, написанные для php, которые позволят вам лучше контролировать свои выходные данные, включая шрифты. Есть запись одной такой библиотеки в Sitepoint .

В качестве альтернативы вы могли бы превратить ваше приложение .NET в веб-приложение / службу, с которой ваш php мог бы общаться.

0 голосов
/ 19 сентября 2011

Разработка плагина для браузера, чтобы делать то, что вы не хотите, не очень сложна;Я должен согласиться с JHolyhead, что было бы лучше избегать этого, если вы можете, потому что есть некоторые существенные соображения безопасности.

Вам нужно знать немного C ++, и вы могли бы использовать FireBreath Framework для написания плагина, который будет работать на всех платформах.Запуск процесса можно выполнить с помощью CreateProcessEx, и основная проблема, с которой вы столкнетесь, состоит в том, что процесс будет запущен в режиме низкой целостности в IE, когда вы используете Vista / Win7 с включенным UAC (из-за защищенного режима).Самым простым решением для этого является просто добавить сайт в список доверенных сайтов, но есть несколько способов сделать возможным запуск процесса в режиме средней целостности (обычный без повышенных прав).

Если вызнать C ++ и иметь некоторый опыт разработки Windows, это было бы очень легко;если вы этого не сделаете, это может быть немного сложнее.Если есть другие варианты (которые не требуют установки плагина для браузера), вам, вероятно, будет лучше следовать им.Тем не менее, базовый плагин FireBreath можно создать за 20 минут (есть видеоуроки).

...