Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11642
Последний выпуск: 19.06.2015

"типа" COM-object - need help!

81K
30 марта 2012 года
VeryDarkGhost
3 / / 30.03.2012
Всем доброго времени суток!

Прошу помочь\ткнуть носом...

Преамбула:
1) имеется некая железка, начинка которой время от времени должна обновляться через инет.
2) имеется ЕХЕ-шник на VB.NET, который это делает.
3) имеется понимание того, что данные с источника обновлений приходят кривые и большое желание (у многих пользователей) их подправить. Возможность воздействовать на источник для обновлений - отсутствует.
4) ЕХЕ-шник "обновлятор" - обычная форма, содержит ComboBox, CheckBox и Button с надписью "обновить", что и в какой последовательности происходит по Click - известно ;-). Логика обработки принимаемых данных внутри железки достаточно извращенная, обновлять перезаписью флэша в программаторе - неудобно и большинству просто не по силам. Соответственно, есть желание придать "обновлятору" способность в качестве источника использовать не инет, а подправленные (как надо), файлы...

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

А вот проблема заключается в том, что ехе-шник скомпилирован без включения необходимых для создания COM объекта опций... :-(
Регистрация объекта не проходит ни обычным способом (на всякий случай - чуть замаскирую имя файла):

ни, способом, описанным на http://alexeev.pro/?page_id=773 :
Цитата:
d:\>regasm.exe d:\ _ServicePack_ .exe /codebase
Microsoft (R) .NET Framework Assembly Registration Utility, версия 4.0.30319.1
(C) Корпорация Майкрософт, 1998-2004. Все права защищены.

RegAsm : warning RA0000 : Регистрация неподписанной сборки с использованием параметра /codebase может вызвать конфликт данной сборки с другими приложениями, которые могут быть установлены на том же компьютере. Параметр /codebase предназначен только для подписанных сборок. Присвойте сборке строгое имя и повторите регистрацию.
RegAsm : warning RA0000 : Не зарегистрировано ни одного типа


(без /codebase - результат аналогичен)
Была предпринята еще одна попытка - в моем любимом :-) VFP создать на форме OLE-объект и достучаться до его внутренностей. Увы, не прокатило... Создается, запускается, "забраться внутрь" не дает...

Тем не менее, надежда еще остается - при попытке тупо открыть этот ехе-шник в Microsoft Visual Basic 2010 Express - он, со всеми Properties & Metods великолепно просматривается в браузере объектов :-)
Есть только одно "но" - опыта работы в VB.NET ноль, как его прикрутить к создаваемой форме - так и не понял...
Все примеры, которые удалось найти, относятся, преимущественно, к использованию объектов на базе Word\Excel, с которыми "проблем интерфейса" не может быть по определению ;-)

В связи с этим - несколько просьбочек...
1) подсказать - возможно ли вообще в этой ситуации запустить "из-под" имеющийся ехе-шник и получить доступ к его функциям?
2) если да - ткните, плиз, носом - что почитать "на тему"
3) и, опять же, если возможно, в идеале бы - поделиться примерчиком... скажем, простенькая форма (по нажатию кнопки на ней что-то пишется), скомпилированная в ехе + образец второй формы, нажатие кнопки на которой вызывает Click на первой...

Заранее благодарен...

296
30 марта 2012 года
Romik
478 / / 24.11.2002
А нельзя ли завернуть обращение к удалённому серверу на обращение к локальному серверу и пусть уже локальный сервер отдаёт подправленные файлы?
81K
30 марта 2012 года
VeryDarkGhost
3 / / 30.03.2012
В теории, способом правки lmhosts или hosts - возможно... Но надо будет поднимать сервер, обрабатывающий с неизвестной логикой внешние запросы и выдающий на их основе требуемые данные. Причем, в зависимости от модели железки выдается от 4-х до 6-и файлов, одинаковый из которых (и подлежащий правке) - только один...
296
30 марта 2012 года
Romik
478 / / 24.11.2002
Думаю не стоит обрабатывать запросы с неизвестной логикой, достаточно их проксировать к оригинальному серверу за исключением обращения к требуемому файлу.
Согласен, это решение необязательно будет проще, чем подключение OLE к сторонней программе (в этой области я вообще ничего не знаю). Предлагаю подход с proxy рассмотреть как вариант решения задачи.
81K
30 марта 2012 года
VeryDarkGhost
3 / / 30.03.2012
Спасибо за вариант решения, надо подумать...

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог