Переключение на Главную Страницу Страницы: 1 [2] 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) .NET, ActiveX, перехват событий. Ошибка (?) (число прочтений - 18200 )
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #15 - 16. Июля 2008 :: 12:23
Печать  
berezdetsky писал(а) 16. Июля 2008 :: 12:08:
Утилиткой RegAsm с ключами /tlb /codebase. Пример сделан под 2005 студией, т.е. нужен .net 2.0.

и кого нужно регить? длл-файл _1cpptest.dll?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #16 - 16. Июля 2008 :: 12:33
Печать  
artbear писал(а) 16. Июля 2008 :: 12:22:
1. regasm где находится?
2. Те исходники, что ты мне дал, рабочие? там События от Нет-контролов ловятся?

1. В папке %SystemRoot%\Microsoft.NET\Framework\vXXX, где XXX - нужная версия фреймворка.
2. Если ты про исходники ActiveX Control Test Container, то это исходники, как они идут в составе MSDN. Я не пробовал их компилировать. Утилита события ловит.

artbear писал(а) 16. Июля 2008 :: 12:23:
berezdetsky писал(а) 16. Июля 2008 :: 12:08:
Утилиткой RegAsm с ключами /tlb /codebase.

и кого нужно регить? длл-файл _1cpptest.dll?

Да.

berezdetsky писал(а) 16. Июля 2008 :: 12:08:
Пример сделан под 2005 студией, т.е. нужен .net 2.0.

А вот для 2003 студии:
« Последняя редакция: 16. Июля 2008 :: 13:44 - berezdetsky »  

ActX2003.zip ( 27 KB | Загрузки )

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #17 - 17. Июля 2008 :: 04:33
Печать  
Проблему с НЕТ-АктивИксами и их событиями удалось решить.
Их события заработали.
Сейчас добью последние штрихи на юнит-тестах, вычищу исходники и выложу тестовую сборку icpp.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #18 - 17. Июля 2008 :: 05:23
Печать  
Выкладываю тестовую сборку icpp 3.0
для проверки событий NET-контролов.
У меня для выложенного контрола событие ValChanged работает.

Прошу протестить и отписаться о результатах на этом контроле, а также других.

ЗЫ также знатоков НЕТ прошу сообщить о контроле, который есть в любой поставке НЕТ, и у которого легко протестить событие.
Нужно для юнит-тестов АктивИкс.
  

icpp_activex_artbear_170708.rar ( 520 KB | Загрузки )

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #19 - 17. Июля 2008 :: 06:05
Печать  
artbear писал(а) 17. Июля 2008 :: 05:23:
Выкладываю тестовую сборку icpp 3.0
для проверки событий NET-контролов.

Прошу также проверить создание на форме одного НЕТ-контрола, отработку его события, затем, не закрывая форму, на этой же кнопке создать другой НЕТ-контрол и проверить уже его события.
Обязательно нужно 2 разных НЕТ-контрола.
Связка НЕТ+обычный АктивИкс у меня работает правильно.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #20 - 17. Июля 2008 :: 07:14
Печать  
Итишкин пистолет... Свершилось? Улыбка

Потестю сегодня!
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #21 - 17. Июля 2008 :: 11:21
Печать  
К сожалению, не совсем Печаль
События у части НЕТ-контролов действительно работают, как у автора ветки.

Но, например, для System.Windows.Forms.Button события не ловятся, т.к. там используется какой-то еще более хитрый способ доступа к событиями, чем нам (мне и steban-у) известен Печаль

Так что борьба продолжается.

ЗЫ поэтому предлагаю поюзать нужные вам контролы и убедиться точно.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #22 - 17. Июля 2008 :: 11:24
Печать  
berezdetsky писал(а) 23. Декабря 2006 :: 10:53:
Если ActiveX контрол написан на .NET, то ни 1С++ ActiveX (2.0.3.1), ни EventProxy не ловят события этого контрола. Для сравнения, ActiveX Control Test Container (из Visual Studio 6.0 Tools) события ловит. ?

Для System.Windows.Forms.Button события не ловятся, юзаю ActiveX Control Test Container (из Visual Studio 6.0 Tools) Печаль Версия 6.0.0.8063

У меня для этого контрола даже InvokeMethods из меню не работает, пишет, что нет методов.

berezdetsky - поделись, какой объект проверял? Свой или системный?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #23 - 17. Июля 2008 :: 11:49
Печать  
artbear писал(а) 17. Июля 2008 :: 11:24:
Для System.Windows.Forms.Button события не ловятся, юзаю ActiveX Control Test Container (из Visual Studio 6.0 Tools) Печаль Версия 6.0.0.8063

У меня для этого контрола даже InvokeMethods из меню не работает, пишет, что нет методов.

berezdetsky - поделись, какой объект проверял? Свой или системный?

Контролы .NET - это не совсем ActiveX. Сначала ты расскажи, как ты засунул System.Windows.Forms.Button в ActiveX Control Test Container без обёртки? Озадачен
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #24 - 17. Июля 2008 :: 11:52
Печать  
berezdetsky писал(а) 17. Июля 2008 :: 11:49:
Сначала ты расскажи, как ты засунул System.Windows.Forms.Button в ActiveX Control Test Container без обёртки? Озадачен

Давай я за Артура отвечу.
Добавил в реестр ключ: HKEY_CLASSES_ROOT\CLSID\{1FCBDA5D-6F09-3A66-ACB8-1B0D748F5C13}\Control
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #25 - 17. Июля 2008 :: 12:08
Печать  
Без обертки это как?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #26 - 17. Июля 2008 :: 12:17
Печать  
Нет, я реестр руками не правил.
Я зарегил контрол через regasm, потом зашел в Тестере во ВставитьКонтрол, далее в требуемые категории (или другую кнопку - одна из двух категорий), поставил галку на Нет объекты, и все, появились объекты System.*
Правда, объект появился, но свойства не работают в тестере Печаль
Поэтому и спрашиваю, как тебе удалось проверить свойства в этом тестере?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #27 - 17. Июля 2008 :: 12:36
Печать  
В общем, контрол должен быть основан на UserControl с явно определёнными свойствами, методами и событиями.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #28 - 17. Июля 2008 :: 13:24
Печать  
berezdetsky писал(а) 17. Июля 2008 :: 12:36:
В общем, контрол должен быть основан на UserControl с явно определёнными свойствами, методами и событиями.

Т.е. у тебя работает также твой контрол, а системные нет ?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #29 - 17. Июля 2008 :: 13:40
Печать  
Контролы .NET не реализуют всех необходимых интерфейсов для работы в качестве ActiveX - за ненадобностью. Для использования в унаследованных (aka устаревших) системах нужно делать свои контролы на основе UserControl. UserControl реализует интерфейсы, требуемые для использования в контейнере MFC. Т.е., скажем, для использования в контейнере VB нужны отдельные танцы с бубном.

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

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 
ОтправитьПечать