Вопрос про Combobox и браузер

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

Вопрос про Combobox и браузер

Сообщение dcdlab » 18.06.2009 (Чт) 11:32

Тема вроде уже надоевшая, но к сожалению поиск ничего не дал (возможно не умею грамотно искать). И все же вопрос. В браузере скажем Mozilla загружена страница с Html формой, на которой есть комбобокс. Как вывести список его элементов в VB. Спасибо.

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

Re: Вопрос про Combobox и браузер

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

Для FireFox это, возможно, решается написанием расширения для обозревателя.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

dcdlab
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 04.06.2009 (Чт) 2:14

Re: Вопрос про Combobox и браузер

Сообщение dcdlab » 18.06.2009 (Чт) 11:56

Муторновато. :) Хэндл комбобокса никак не узнать?
А для Explorer? Впринципе выбор браузера не важен, важно лишь одно, нельзя использовать HTML код.

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

Re: Вопрос про Combobox и браузер

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

Комбобокс внутри страницы вообще не является окном. Нельзя получить хендл того, чего нет.

Для IE есть специальный интерфейсы. Найти (перебором) нужную страницу, добраться до её DOM, найти там комбо и делать с ним всё, что угодно.

важно лишь одно, нельзя использовать HTML код.

Чё? Где нельзя использовать HTML?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

dcdlab
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 04.06.2009 (Чт) 2:14

Re: Вопрос про Combobox и браузер

Сообщение dcdlab » 18.06.2009 (Чт) 12:07

Я имел ввиду нельзя получить адрес текущей Web страницы в браузере и взять ее код и уже по нему попытаться найти нужный список и выбрать элементы. Такой путь уже реализован и он мне не нужен.

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

Re: Вопрос про Combobox и браузер

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

Понятие «текущая Web страница в браузере» не имеет смысла.

Найти страницу с нужным адресом и получить её код можно. В IE. В FireFox-е, я уверен, расширению это тоже позволено.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Вопрос про Combobox и браузер

Сообщение arthur2 » 18.06.2009 (Чт) 12:15

Хакер писал(а):Комбобокс внутри страницы вообще не является окном. Нельзя получить хендл того, чего нет.

Упс... а вот это уже интересно! А что же тогда? Ведь и текстовые поля, вроде, тоже не окна, и кнопки! Получается, всё это хозяйство просто рисуется? Или как это реализовано?
Артур
 
   

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

Re: Вопрос про Combobox и браузер

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

Просто рисуется. Что в этом такого?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Вопрос про Combobox и браузер

Сообщение arthur2 » 18.06.2009 (Чт) 12:34

Посмотрел сканером окон. Забавно, но комбики в эксплорере - всё же окна (класс Internet Explorer_TridentCmboBx) Хотя всё остальное нет :) А в фоксе и комбики рисуются.

Хакер писал(а):Что в этом такого?
Просто привык, что в винде всё - окна. Лейблы - окна, меню - окна, а тут вдруг даже кнопки и текстбоксы - просто рисуются :)

Ну кнопки ладно... Но если в бейсике я вдруг захочу вместо эдита просто его эмулировать, я, надо полагать, быстро задолбаюсь.
Артур
 
   

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

Re: Вопрос про Combobox и браузер

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

arthur2 писал(а):Лейблы - окна

Ошибаешься.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Вопрос про Combobox и браузер

Сообщение alibek » 18.06.2009 (Чт) 12:41

arthur2 писал(а):Просто привык, что в винде всё - окна. Лейблы - окна, меню - окна, а тут вдруг даже кнопки и текстбоксы - просто рисуются :)

В Windows они тоже просто рисуются. Хендл это не какая-то магия, которая чудесным образом создает текстовое поле, это некий внутренний идентификатор, зная который можно вмешиваться в процесс рисования.
И у комбобоксов, текстовых полей и прочих html-овских элементов управления тоже такие идентификаторы (хендлы) есть, просто управляет ими не GDI, а браузер.
Lasciate ogni speranza, voi ch'entrate.

dcdlab
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 04.06.2009 (Чт) 2:14

Re: Вопрос про Combobox и браузер

Сообщение dcdlab » 18.06.2009 (Чт) 12:43

С этого вопроса по подробнее, если в Explorer-е комбы это окна, то можно ли из них достать список элементов и как? Подскажите API я в ней не силен, т.к. начинающий. Мне нужен только активный комбик.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Вопрос про Combobox и браузер

Сообщение Денис » 18.06.2009 (Чт) 12:46

В компьютере всё рисуется. Вопрос в том, что какие-то моменты все равно реализованы через окна. Иначе как реализовано это?
(пока файл выгружался тут все прояснили, но все-равно, гляньте, кому интересно: на скриншоте выпадающий список отрисовывается за областью окна IE)
Вложения
sample.png
sample.png (316.35 Кб) Просмотров: 2603
Последний раз редактировалось Денис 18.06.2009 (Чт) 12:48, всего редактировалось 1 раз.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Вопрос про Combobox и браузер

Сообщение alibek » 18.06.2009 (Чт) 12:46

Никак. Используй DOM, как уже сказали.
Для IE примеры есть на форуме, для других браузерах надо искать инфу на соответствующих сайтах.
Lasciate ogni speranza, voi ch'entrate.

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

Re: Вопрос про Combobox и браузер

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

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

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Вопрос про Combobox и браузер

Сообщение alibek » 18.06.2009 (Чт) 12:48

Денис писал(а):В компьютере всё рисуется. Вопрос в том, что какие-то моменты все равно реализованы через окна. Иначе как реализовано это?

Разумеется. При раскрытии списка создается окно.
В обычном ComboBox делается то же самое.
Lasciate ogni speranza, voi ch'entrate.

dcdlab
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 04.06.2009 (Чт) 2:14

Re: Вопрос про Combobox и браузер

Сообщение dcdlab » 18.06.2009 (Чт) 12:49

Ну дополнение к Firefox нужно писать на Яве, я так понимаю, в которой я ну никуды :) А вот про DOM посмотрю, спасибо.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Вопрос про Combobox и браузер

Сообщение alibek » 18.06.2009 (Чт) 12:51

Причем тут Ява?
Если ты про JavaScript, то это другой способ, не через плугины.
Lasciate ogni speranza, voi ch'entrate.

dcdlab
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 04.06.2009 (Чт) 2:14

Re: Вопрос про Combobox и браузер

Сообщение dcdlab » 18.06.2009 (Чт) 12:52

А в какой среде пишется Addons для Firefox?

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Вопрос про Combobox и браузер

Сообщение Денис » 18.06.2009 (Чт) 12:55

А чтобы использовать DOM, обязательно нужно использовать контрол, или можно из своей проги управлять окном IE? (потому что, обратите внимание, автор изначально говорил об окне FireFox)
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

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

Re: Вопрос про Combobox и браузер

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

Денис писал(а):А чтобы использовать DOM, обязательно нужно использовать контрол,
'
Какой контрол? WebBrowser из Microsoft Internet Controls? Нет. Нужно получить ссылку на интерфейс IDocumentElement. Обычно через свойство IWebBrowser::document. Интерфейс IWebBrowser(n) поддерживается много чем, в том числе контролом.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Вопрос про Combobox и браузер

Сообщение Денис » 18.06.2009 (Чт) 13:08

Хакер писал(а):Интерфейс IWebBrowser(n) поддерживается много чем, в том числе контролом.

Аха. А какова последовательность действий, чтобы получить доступ к этому интерфейсу у экземпляра IE? Я так понимаю, одним хэндлом окна здесь не обойтись..
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Вопрос про Combobox и браузер

Сообщение arthur2 » 18.06.2009 (Чт) 13:15

Хакер писал(а):Лейблы - окна

Ошибаешься.
Я имел ввиду не бейсиковские лейблы, а всякие подписи в диалоговых окнах, которые обычно - окна класса Static

alibek писал(а):В Windows они тоже просто рисуются.
Это всё понятно, но одно дело, когда винда рисует, другое - когда сам рисуешь. Одно дело - когда берешь готовое окно и через тот же хендл просто определенным образом вмешиваешься в его рисование, другое - полностью рисовать всё. Да ещё и нужно правильно повторить поведение, скажем, той же кнопки, причём, чтобы эта кнопка была и для висты, и дла хрюши, и для старинных виндов - родной...

И потом, если на бейсике я захочу сделать, скажем, свой эдит - даже если вдруг решусь полностью рисовать всё сам - я всё равно скорее всего возьму за основу Usercontrol, так что даже мой самодельный эдит будет окном. А просто рисовать эдит в определенном месте формы - на много сложнее. Я писал самодельные уникодные лейблы - так и то едва решился обойтись без юзерконтрола, а тут - целый эдит.
Артур
 
   

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

Re: Вопрос про Combobox и браузер

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

Денис писал(а):А какова последовательность действий, чтобы получить доступ к этому интерфейсу у экземпляра IE? Я так понимаю, одним хэндлом окна здесь не обойтись..
Ещё один. Хендл окна здесь вообще не нужен.

Нужно создать объект класса «ShellWindows», перебрать его с помощью For Each, найти нужное окно, и обратиться к его свойству document, чтобы, собственно, получить доступ к DOM.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Вопрос про Combobox и браузер

Сообщение alibek » 18.06.2009 (Чт) 13:30

arthur2 писал(а):И потом, если на бейсике я захочу сделать, скажем, свой эдит - даже если вдруг решусь полностью рисовать всё сам - я всё равно скорее всего возьму за основу Usercontrol, так что даже мой самодельный эдит будет окном.

Про свойство Windowless слышал?

arthur2 писал(а):А просто рисовать эдит в определенном месте формы - на много сложнее. Я писал самодельные уникодные лейблы - так и то едва решился обойтись без юзерконтрола, а тут - целый эдит.

Что сложного в EditBox?
Lasciate ogni speranza, voi ch'entrate.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Вопрос про Combobox и браузер

Сообщение arthur2 » 18.06.2009 (Чт) 14:33

alibek писал(а):Про свойство Windowless слышал?

Вообще-то, я к тому, что с окном гораздо проще. Так что в данном случае Windowless ничего не даёт - без окна я не смогу на контроле писать и рисовать (кроме как методами самого бейсика). Получу то же самое, как если просто рисовать в определенной позиции формы, только ещё и путаней.

alibek писал(а):Что сложного в EditBox?
Мне как-то нужна была эмуляция - сложного оказалось ой как много чего. Самое нерешаемое для меня - возможность писать справа налево.
Артур
 
   

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

Re: Вопрос про Combobox и браузер

Сообщение Хакер » 18.06.2009 (Чт) 14:36

arthur2 писал(а):
alibek писал(а):Про свойство Windowless слышал?
без окна я не смогу на контроле писать и рисовать (кроме как методами самого бейсика)

Windows даёт возможность рисовать и писать в любом месте экрана (вернее, устройства).
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Вопрос про Combobox и браузер

Сообщение arthur2 » 18.06.2009 (Чт) 14:39

Ну так а я о чём?
Получу то же самое, как если просто рисовать в определенной позиции формы, только ещё и путаней.

Отказавшись от "окновости" контрола, я прихожу практически к тому же, как если вообще откажусь от контрола.
Артур
 
   

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Вопрос про Combobox и браузер

Сообщение alibek » 18.06.2009 (Чт) 14:44

arthur2 писал(а):Ну так а я о чём?

О чем?
Ты не различаешь hWnd и hDC?
Lasciate ogni speranza, voi ch'entrate.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Вопрос про Combobox и браузер

Сообщение arthur2 » 18.06.2009 (Чт) 14:45

Различаю, но туплю... Действительно, hdc остался! Ништяк
Артур
 
   

След.

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

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

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

    TopList