Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: вставить dll в браузер.  (Прочитано 15193 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Serguntii
Помогающий

ru
Offline Offline

« : 17-01-2014 17:14 » 

Возник такой вопрос,есть длл хотелось использовать ее функции в браузере можно такое сделать?
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 17-01-2014 18:37 » 

Если речь про IE, то преобразовать dll в ActiveX элемент - такой, который можно внедрить на страницу в виде <object> элемента.

Если речь о более универсальном кроссбраузерном решении, то создать Java-апплет со специфическим для Windows модулем, содержащим native-код - т.е. содержимым dll. Но в этом случае пользователь должен иметь предустановленным на машине Java Runtime (JRE). Апплет внедряется <applet> элементом.
« Последнее редактирование: 17-01-2014 20:14 от Dimka » Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 17-01-2014 19:14 » 

Третий вариант (менее универсальный) - сделать плагин для конкретного браузера. С другой стороны, не нужна JRE тогда.
Записан
zubr
Гость
« Ответ #3 : 17-01-2014 19:20 » 

Для IE есть специальная технология - BHO (Browser Helper Object). У него больше возможностей, чем у ActiveX, вплоть до подмены загружаемого контента и скриптов.
Записан
Serguntii
Помогающий

ru
Offline Offline

« Ответ #4 : 18-01-2014 17:36 » 

Хотелось что бы во всех браузерах работало, но пока пойдет и на каком ни будь одном. Что проще будет, что бы не сильно сложно, плохо представляю как это работает. Буду благодарен за ссылки, что лучше прочитать новичку по этой теме.
Функции из длл нужно что бы из javascript были доступны.
« Последнее редактирование: 18-01-2014 17:38 от sergeyan » Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 18-01-2014 19:36 » 

Цитата: sergeyan
Функции из длл нужно что бы из javascript были доступны.
Предположу, что это если не совсем невозможно, то по меньшей мере сильно ограничено и требует цифровой подписи с валидным сертификатом. По соображениям безопасности. Это принципиальный вопрос в web - с самых первых версий браузеров с поддержкой JavaScript.

В IE, если страницу объявить HTA - HTML Application, становятся доступны все возможности операционной системы, но тогда страница работает не в штатном браузере, а в особом процессе с отдельным окном. В этом случае dll нужно оформить как ActiveX и в JScript создавать через new ActiveXObject().

Поэтому предлагаю рассказать о задаче, в рамках которой понадобилось такое чудачество. Не исключено, что вопрос может решаться совсем иными средствами.
« Последнее редактирование: 18-01-2014 19:37 от Dimka » Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
zubr
Гость
« Ответ #6 : 18-01-2014 20:00 » 

По BHO смотри в msdn Browser Extensions в разделе вебразработка, также в сети куча инфы. Что касается чтобы функции из длл были доступны в javascript то тут можно IDispatchEx интерфейс использовать. Вот пример: http://www.codeproject.com/Articles/3326/Extending-the-Internet-Explorer-Scripting-Engine
А вот кстати пример по BHO: http://www.codeproject.com/Articles/37044/Writing-a-BHO-in-Plain-Cplusplus
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 18-01-2014 22:46 » 

zubr, он универсально хочет. Я вот вижу, что из JavaScript после некоторых танцев с бубном можно к Java-апплету обращаться. Но всё равно апплет с библиотекой требует цифрового сертификата. Потому что в самом деле риск поймать вирус через такой механизм довольно большой.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
zubr
Гость
« Ответ #8 : 19-01-2014 05:58 » 

Dimka, ну универсально можно на более низком уровне, перехватывать библиотеки, которые обеспечивают DOM-интерфейс браузера и при выполнении скриптовых функций перенаправлять в свою длл. Но в любом случае, также и в случаях указанных мной выше (с BHO и IDispatchEx), придется выполнять установочный код на стороне клиента - регистрация СОМ-сервера или инжект в процессы. То есть, выполнить злоумышленный код только со стороны удаленного сервера не получится.
Записан
Serguntii
Помогающий

ru
Offline Offline

« Ответ #9 : 20-01-2014 19:06 » 

Сложно,  может как-то по другому можно сделать, переписать всю длл на явускрипт, но там есть параметры которые придется сохранять в фай и читать из него после выхода, как это сделать в скриптах не знаю.
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #10 : 20-01-2014 19:20 » 

sergeyan, я не понимаю. Скрипт в браузере не читает файлы на диске иначе, нежели через посылку на сервер input type=file. Все операции с файлами делаются на сервере. Какой смысл на веб-странице городить работу с файлами?

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

Есть большая разница между задачами организации работы приложения и задачами дистрибуции приложений.

Наконец, плиточные приложения под Windows 8 - это некий гибрид веб- и локальных приложений. Но они делаются в расчёте на размещение в магазине приложений Windows.

Цитата: sergeyan
может как-то по другому можно сделать
Можно много чего. Если ты для начала потрудишься объяснить, о чём вообще речь, какие задачи должно решать приложение.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Serguntii
Помогающий

ru
Offline Offline

« Ответ #11 : 20-01-2014 19:27 » 

Ок сейчас посмотрю, чем отличиться плиточные приложения так же пишутся на си в vs?
Приложение должно разбирать текстовый файл по строчкам, в браузере, файл который выберет пользователь загружается в текстовое поле html страницы, и передать данные на сервер а сервер отвечает подверждением.
« Последнее редактирование: 20-01-2014 19:40 от sergeyan » Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #12 : 20-01-2014 22:04 » 

sergeyan, а причём тут dll?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
zubr
Гость
« Ответ #13 : 20-01-2014 23:22 » 

Цитата
Приложение должно разбирать текстовый файл по строчкам, в браузере, файл который выберет пользователь загружается в текстовое поле html страницы, и передать данные на сервер а сервер отвечает подверждением.
Если я правильно понял, то задача решается броузером, с использованием формы, см. <form>, <file>
Алгоритм:
1. С помощью формы передаем выбранный пользователем файл на сервер.
2. Серверный скрипт подгружает в текстовое поле страницы этот файл.
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 21-01-2014 00:11 » new

Тогда это не в  Программирование > C/C++
Но это как-то круто..
Выбрать браузером файл, затем отослать на сервер, чтоб получить его в textarea, затем что делать с этим textarea.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #15 : 21-01-2014 04:07 » 

Sla, про textarea и про разбор в браузере никто не говорил. Может и на сервере разбор.

Но смысл dll я так и не уловил.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Serguntii
Помогающий

ru
Offline Offline

« Ответ #16 : 23-01-2014 12:33 » 

Смысл длл в том что у меня все сделано на си в длл. а нужно как-то это перенести в браузер.
Записан
darkelf
Молодой специалист

ua
Offline Offline

« Ответ #17 : 23-01-2014 12:40 » 

Приложение должно разбирать текстовый файл по строчкам, в браузере, файл который выберет пользователь загружается в текстовое поле html страницы, и передать данные на сервер а сервер отвечает подверждением.
Может Вам надо написать серверную часть, например на том-же php, или на C, в качестве расширения к php, ну или на худой конец - просто cgi - программу, которую при определённых условиях вызовет web-сервер?
« Последнее редактирование: 23-01-2014 14:34 от darkelf » Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #18 : 23-01-2014 14:20 » 

sergeyan, ну дак пусть сервер и выполняет твою DLL, а клиентская часть работает с ним по протоколу удалённого исполнения - тот же SOAP для web-сервисов. Зачем DLL в браузер пихать?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines