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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2]  Все   Вниз
  Печать  
Автор Тема: вызов чужого COM-32бита из 64-битного приложения  (Прочитано 42087 раз)
0 Пользователей и 5 Гостей смотрят эту тему.
zubr
Гость
« Ответ #30 : 19-01-2017 18:26 » 

Malaja, подумай, если бы любое приложение могло, используя класс Net Framework RegistrySecurity, писать в защищенные ветки реестра, то смысл вообще в системе безопасности и в контроле учетных записей в частности?
Инжект - это не класс, а внедрение кода и запуск его из одного приложения в другое. Эту технологию используют вирусы и антивирусные программы.
Записан
Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #31 : 20-01-2017 14:53 » new

zubr,

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

Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
zubr
Гость
« Ответ #32 : 20-01-2017 15:33 » 

Malaja,
1. Не все ветки реестра требуют админских полномочий.
2. Не все приложения пишут в реестр, а только читают.
3. Если используется стандартный инсталлятор, то он является доверенным приложением и UAC его пропускает.
4. Настройки UAC у пользователей могут быть на самом низком уровне защиты или вообще отключен UAC.
Записан
Джон
просто
Администратор

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

« Ответ #33 : 20-01-2017 19:13 » 

все это существует, тем не менее куча приложений инсталлирует что-то с тихим заходом в реестр.

Ир, ключевое слово "инсталлирует", поэтому Ромка и советовал назвать экзешник setup, кстати без всякого юмора. Мне в одном проекте-инсталляторе пришлось отлавливать слова setup и install (даже в блоке описания), чтобы не появлялось злосчастное окошко подтверждения запуска от имени админа.

А ещё надо не забывать, что частенько инсталляторы работают от имени пользователя SYSTEM.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #34 : 22-01-2017 20:51 » 

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

Джон,
но тогда даже если я назову ехе - шник setup-ом, я не избавлюсь от того самого диалога..
Кстати, а как инсталлятор задает себе имя пользователя таким образом? Значит, есть способ?

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

Добавлено через 16 часов, 3 минуты и 24 секунды:
Наконец-то заработал тестовый комп. Внесла ручками все предложенные изменения в реестр и попробовала загрузить com. Результат:
при загрузке com ошибка TYPE_E_LIBNOTREGISTERED

так что похоже, что это решение тупиковое...

придется рыть в направлении stub.. Я этим никогда не занималась, коллега тоже...
« Последнее редактирование: 23-01-2017 12:54 от Malaja » Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #35 : 23-01-2017 15:32 » 

Update:

"Я убью тебя, лодочник!" - сказали мы третьему коллеге, который дал нам неверно параметрированный проект... Я зол!

решение 64 <->32 с помощью реестра работает!  Внимание! Говорит и показывает... Внимание! Говорит и показывает... Внимание! Говорит и показывает... Жжешь Жжешь Жжешь
Хотя после загрузки com-а и конвертирования в тип нашего интерфейса, если посмотреть сам полученный объект, то можно увидеть ошибку TYPE_E_LIBNOTREGISTERED.

так что теперь будем решать вопрос - как изменять реестр.
Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #36 : 13-02-2017 17:31 » 

Update еще раз Ага Я упоминала 2 способа решения проблемы - через реестр и с помощью нового процесса, который компилируем под х86.

Так вот, второе решение я, благодаря хорошему step-by-step - у, данному коллегой, сделала - таки работает! Во всяком случае длл загружается без всяких ошибок.
Я подвешу тестовый проект - сразу прошу прощения за то, что там ничего не вылизывалось, ибо делалось все в промежутках между другими заданиями (официально я этим не занималась, ибо проблему решили более простым путем Ага )

Важно - сначала открыть ClientServer_Server - проект и почитать все пояснения в ServerStub.cs. Я попыталась записать все, что сделала.

* ClientServer.zip (35.95 Кб - загружено 963 раз.)
Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
Страниц: 1 [2]  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines