Сабклассинг ShockwaveFlash

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

Сабклассинг ShockwaveFlash

Сообщение Hartman » 19.07.2012 (Чт) 11:24

Добрый день!
На форме есть объект ShockwaveFlash.
Мне необходимо получать в форму нажатия клавиш.
Я прочитал, что это можно сделать через сабклассинг ShockwaveFlash.
Но как это сделать? У ShockwaveFlash нет хэндла(hwnd).
Подскажите, как сделать сабклассинг ShockwaveFlash.
Попытка сделать собственный обработчик сообщений через сабклассинг самой формы не помогла - клавиатурный буфер уходит в ShockwaveFlash :(

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

Re: Сабклассинг ShockwaveFlash

Сообщение Хакер » 19.07.2012 (Чт) 11:27

Hartman писал(а):У ShockwaveFlash нет хэндла(hwnd).

На основании чего сделан такой вывод?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Hartman
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 17.03.2010 (Ср) 18:57

Re: Сабклассинг ShockwaveFlash

Сообщение Hartman » 19.07.2012 (Чт) 12:48

Хакер писал(а):
Hartman писал(а):У ShockwaveFlash нет хэндла(hwnd).

На основании чего сделан такой вывод?

В свойствах объекта не нашел "hwnd".
и в этой теме http://bbs.vbstreets.ru/viewtopic.php?f=1&t=37650&start=0 в исходнике есть комментарий:
Код: Выделить всё
' у флешконтрола нет свойcтва hWnd

Из этого сделал такой вывод.

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

Re: Сабклассинг ShockwaveFlash

Сообщение Хакер » 19.07.2012 (Чт) 12:56

То что у контрола нет свойства hwnd не означает, что у контрола нет hwnd.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Hartman
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 17.03.2010 (Ср) 18:57

Re: Сабклассинг ShockwaveFlash

Сообщение Hartman » 19.07.2012 (Чт) 12:59

Хакер писал(а):То что у контрола нет свойства hwnd не означает, что у контрола нет hwnd.

а как мне получить hwnd этого контрола?

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

Re: Сабклассинг ShockwaveFlash

Сообщение Хакер » 19.07.2012 (Чт) 13:11

Hartman писал(а):
Хакер писал(а):То что у контрола нет свойства hwnd не означает, что у контрола нет hwnd.

а как мне получить hwnd этого контрола?

То, что я сказал, что {то, что нет свойства hwnd, ещё не обозначает, что нет hwnd], ещё не означает, что hwnd есть.

Надо быть беспристрастным и логичным, понимаешь?
Из отсутствия свойства hwnd не следует отсутствие самого hwnd.
Но из этого утверждения не следует, что hwnd присутствует.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Hartman
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 17.03.2010 (Ср) 18:57

Re: Сабклассинг ShockwaveFlash

Сообщение Hartman » 19.07.2012 (Чт) 13:18

Хакер писал(а):
Hartman писал(а):
Хакер писал(а):То что у контрола нет свойства hwnd не означает, что у контрола нет hwnd.

а как мне получить hwnd этого контрола?

То, что я сказал, что {то, что нет свойства hwnd, ещё не обозначает, что нет hwnd], ещё не означает, что hwnd есть.

Надо быть беспристрастным и логичным, понимаешь?
Из отсутствия свойства hwnd не следует отсутствие самого hwnd.
Но из этого утверждения не следует, что hwnd присутствует.

тогда как мне сабклассировать этот объект?
кто-нибудь смог это сделать?
поделитесь примером.

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

Re: Сабклассинг ShockwaveFlash

Сообщение Хакер » 19.07.2012 (Чт) 13:23

Hartman писал(а):тогда как мне сабклассировать этот объект?

Сначала надо взять и выяснить, есть ли окно или нет окно. Возьми и сейчас же выясни, есть ли окно или нет. Ставлю 9 к 1, что окно есть.
Если есть окно, задача сведётся к тому, чтобы получить его хендл. Это очень простая задача. Если окна нет... это настолько маловероятный вариант, что я даже не буду предлагать решение.

Hartman писал(а):кто-нибудь смог это сделать?

Исходя из количества программистов в мире — кому-нибудь наверняка.

Hartman писал(а):поделитесь примером.

Примеры должны гореть в аду. Если только не не примеры чего-то нетривиального. Что не относится к данному случаю.
—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 » 19.07.2012 (Чт) 13:38

Хакер, что ты его запутываешь?

Почти уверен, что хендл есть. Как найти? Либо как-то выковырять, либо тупо перебрать все дочерние окна через WinApi и выбрать единственный хендл, который не принадлежит остальным элементам.

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

Re: Сабклассинг ShockwaveFlash

Сообщение Хакер » 19.07.2012 (Чт) 15:00

Qwertiy писал(а):Хакер, что ты его запутываешь?

Не запутываю. Наоборот, навязываю правильный ход размышлений.

Qwertiy писал(а):Почти уверен, что хендл есть. Как найти?

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


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

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

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 43

    TopList