Из обычного приложения сделать ActiveEXE сервер

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Из обычного приложения сделать ActiveEXE сервер

Сообщение jangle » 11.04.2013 (Чт) 19:54

Не очень сведущ в этом тонком вопросе. Есть довольно сложное приложение управляемое через GUI интерфейс.
Нужно прикрутить возможность его автоматизации, чтобы из скриптов или например VBA юзать его функции, без отображения интерфейса на экране.
Можно ли реализовать это через ActiveX EXE ?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Из обычного приложения сделать ActiveEXE сервер

Сообщение Хакер » 11.04.2013 (Чт) 19:55

jangle писал(а):Можно ли реализовать это через ActiveX EXE ?

Можно и через ActiveX EXE и через ActiveX DLL.

Давай-ка задавай более конкретные вопросы.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Из обычного приложения сделать ActiveEXE сервер

Сообщение Хакер » 11.04.2013 (Чт) 19:58

Хотя вообще самый чистый путь: это вообще ничего не преобразовывая.

Пусть приложение остаётся Standard EXE. Оно должен запихать свой моникер в ROT.

А потом любой скрипт сможет GetObject-ом получить ссылку на любой объект из объектной модели внутри Standard EXE.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Из обычного приложения сделать ActiveEXE сервер

Сообщение jangle » 11.04.2013 (Чт) 20:13

Хакер писал(а):Пусть приложение остаётся Standard EXE. Оно должен запихать свой моникер в ROT.

А потом любой скрипт сможет GetObject-ом получить ссылку на любой объект из объектной модели внутри Standard EXE.


Что-то сложно для меня. Задача в общих чертах такая. Есть приложение которое собирает различные данные с устройств подключенных к компу и отображает их в своем GUI интерфейсе. Заказчик теперь хочет, чтобы эти данные попадали в его базу данных, 1С, или любые другие ERP приложения если ему это понадобится. Переносить весь проект в ActiveX DLL нет резона, потому как заказчик может ее потом юзать бесконтрольно там где пожелает.
Поэтому мне кажется, лучше чтобы проект был в виде EXE файла, тем более что к нему уже прикручена защита на USB-ключе.
При этом, пользователь должен видеть в своей среде разработки, например VBA, нормальную объектную модель программы.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Из обычного приложения сделать ActiveEXE сервер

Сообщение Хакер » 11.04.2013 (Чт) 20:25

jangle писал(а):Что-то сложно для меня.

Издеваешься?

В простейшем случае даже не надо возиться с ROT.

Пусть refAppObject — переменная-ссыка на корневой объект объектной модели приложения.

Делаешь:
Код: Выделить всё
strMonikerName = GetObjRefMoniker(refAppObject).GetDisplayName()
строку пишешь в файл



Управляющая программа:
Код: Выделить всё
strMonikerName = ПрочитатьСтрокуИзФайла()
refRootObject = GetObject(strMonikerName)

refObject.DoSomeCoolWork()  ' При условии что такой метод есть
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Из обычного приложения сделать ActiveEXE сервер

Сообщение ger_kar » 12.04.2013 (Пт) 11:26

А что есть ROT? Я вообще нифига не понял, что это такое. Гугл по строке поиска ROT выдал кучу инфы совсем не в тему. Хотелось бы знать что это такое, хотя бы вкратце, или узнать как это называется без аббревиатуры, что-бы нормально отыскать искомое.
Бороться и искать, найти и перепрятать

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Из обычного приложения сделать ActiveEXE сервер

Сообщение Хакер » 12.04.2013 (Пт) 11:30

ger_kar писал(а):А что есть ROT?

  1. Читаем:
    http://www.google.kz/search?ie=UTF-8&hl ... ct%20table
  2. Щупаем:
    rot_viewer.png
    rot_viewer.png (17.94 Кб) Просмотров: 2992
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Из обычного приложения сделать ActiveEXE сервер

Сообщение Хакер » 12.04.2013 (Пт) 11:34

Собственно, о трюке у доступом к внутренним объектам любого стороннего VB-процесса я писал ещё три года назад:
viewtopic.php?f=54&t=42646
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 12.04.2013 (Пт) 17:10

Хакер писал(а):Собственно, о трюке у доступом к внутренним объектам любого стороннего VB-процесса я писал ещё три года назад:
viewtopic.php?f=54&t=42646

Как всегда, немного пообсуждали и тишина c тех пор :(
А как насчёт сделать?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Из обычного приложения сделать ActiveEXE сервер

Сообщение Хакер » 12.04.2013 (Пт) 17:21

Qwertiy писал(а):А как насчёт сделать?


Сделать нет вообще никакой проблемы. Более того, несколько тысяч строк кода написано в рамках работы над той задумкой.
Проблема в том, что я вынужден заниматься не тем, чем хочу (и чем другие от меня хотят), а тем, за что кто-то готов платить хорошие деньги.

Так что я занят заказами и свободного времени вообще нет.

Если бы донейт приносил хорошие деньги, то бы давно были готовы и эта утилита, и FNDLL (AMC-Tools) и кирпич, обеспечивающий многопоточность в VB. Но донейтов нет вообще. Поэтому когда ко мне приходит заказчик и предлагает хорошие деньги за написание экзотической штуки, я не могу сказать ему: «нет, знаешь, я пойду писать другие экзотические штуки, бесплатные и оупенспорсные».
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Из обычного приложения сделать ActiveEXE сервер

Сообщение ger_kar » 12.04.2013 (Пт) 17:42

Я кстати этот ROT Viewer раньше запускал в рамках знакомства со студией. Запустил, посмотрел... Подумалось - какая то фигня мутная мутная. Закрыл и до сего момента более эту фичу не запускал :)
Бороться и искать, найти и перепрятать

Kumpel
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 02.01.2009 (Пт) 0:24
Откуда: Украина, Львов

Re: Из обычного приложения сделать ActiveEXE сервер

Сообщение Kumpel » 25.04.2013 (Чт) 2:57

jangle писал(а):...Можно ли реализовать это через ActiveX EXE ?

Делал я такое (любопытства ради) на РВ9. Могу поделиться.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Из обычного приложения сделать ActiveEXE сервер

Сообщение jangle » 25.04.2013 (Чт) 9:48

Kumpel писал(а):Делал я такое (любопытства ради) на РВ9. Могу поделиться.


Ну если не жалко, поделись)

Kumpel
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 02.01.2009 (Пт) 0:24
Откуда: Украина, Львов

Re: Из обычного приложения сделать ActiveEXE сервер

Сообщение Kumpel » 26.04.2013 (Пт) 14:41

jangle писал(а):Ну если не жалко, поделись)

Поделяюсь:
Запускаем PbDispCalc.exe для саморегистрации в реестре, тушим его, потом открывает проект в папке "VB Test" и создаем, управляем и т. д.
Исходники прокомментировал, хотя там все и простенько.
Вложения
DispCalc.rar
PB-DispCalc
(38.17 Кб) Скачиваний: 77

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Из обычного приложения сделать ActiveEXE сервер

Сообщение jangle » 26.04.2013 (Пт) 15:32

Не компилируется, у меня PB10.03

Kumpel
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 02.01.2009 (Пт) 0:24
Откуда: Украина, Львов

Re: Из обычного приложения сделать ActiveEXE сервер

Сообщение Kumpel » 26.04.2013 (Пт) 15:49

jangle писал(а):Не компилируется, у меня PB10.03

Ну, это проблемы совместимости хидеров для разных версий, обработки строк и т. д.
Главное - принцип самого превращения, а код под PB10 можна подогнать...
Экзэшник у тебя есть и он работает, а пересобирал я его буквально минут 20 тому.
P.S.
Десятку купил недельки две назад, но пока не вникал.

Kumpel
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 02.01.2009 (Пт) 0:24
Откуда: Украина, Львов

Re: Из обычного приложения сделать ActiveEXE сервер

Сообщение Kumpel » 26.04.2013 (Пт) 16:04

jangle писал(а):Не компилируется, у меня PB10.03

А если повнимательней ? :lol:

Убери это:
#Compiler PBWin 9

Kumpel
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 02.01.2009 (Пт) 0:24
Откуда: Украина, Львов

Re: Из обычного приложения сделать ActiveEXE сервер

Сообщение Kumpel » 26.04.2013 (Пт) 16:48

jangle писал(а):Не компилируется, у меня PB10.03

Для десятки:
Вложения
DispCalc10.rar
(40.87 Кб) Скачиваний: 60
Последний раз редактировалось Kumpel 26.04.2013 (Пт) 17:10, всего редактировалось 1 раз.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Из обычного приложения сделать ActiveEXE сервер

Сообщение Хакер » 26.04.2013 (Пт) 16:59

jangle, тебя что, не удовлетворяет решение с вызовом одной функции? Зачем тебе PB?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 70

    TopList