Автоматическая связь данных с окнами

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Автоматическая связь данных с окнами

Сообщение Space » 17.06.2009 (Ср) 17:42

Вот, посмотрел ролик, как пользователь должен выполнять связь полей Логин/Пароль в менеджере паролей
http://ru.stickypassword.com/sticky-pas ... enger.html
Вопросы:
1. После наведения спецуказателя на поле пароля в событии MouseUp запоминается парольное поле окна. По какому признаку?
2. Не уловил, каким образом идентифицируется и запоминается поле для ввода Логина, ведь в окне могут быть другие поля.
3. В справке утверждается, что прога может автоматически заполнять поля любых программ (и браузеров). Каким образом осуществляется сие чудо? На ролике заполнения полей авторизации в IE yandex.ru вообще всё автоматом заполняется, никакого дополнительного связывания. Или все поля авторизации в браузерах имеют спец. идентификаторы или что-то вроде того?
4. Автосабмит аккаунта это автоввод?

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Автоматическая связь данных с окнами

Сообщение Dimen » 18.06.2009 (Чт) 6:34

Код: Выделить всё
WebBrowser1.Navigate "сайт_на_котором_заполняем_полЯ"
Do While WebBrowser1.Busy '
DoEvents
Loop

On Error Resume Next
WebBrowser1.Document.All("login").Value = j
WebBrowser1.Document.All("password").Value = q
WebBrowser1.Document.All("submit").Click


Имеют свои идентификаторы, смотреть в исходном коде страницы. Допустим вместо "password" может быть "pass" и так далее
Íå óïóñêàéòå øàíñ!

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Автоматическая связь данных с окнами

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

нет, мне надо в экземпляре IE заполнять. В окнах других приложений использую GetDlgCtrlID.

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Автоматическая связь данных с окнами

Сообщение Dimen » 18.06.2009 (Чт) 13:20

Дак подредактируй код по IE. Не представляешь как изучи это: http://www.script-coding.info/WSH/WebBrowser.html
И держи пример кода:
Код: Выделить всё
Private Sub Command1_Click()
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "Сайт который заполняем"
While objIE.Busy
  Wend
objIE.ToolBar = False
objIE.StatusBar = False
objIE.Resizable = False
objIE.Visible = 1

objIE.Document.All("submit").Click
End Sub

Íå óïóñêàéòå øàíñ!

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Автоматическая связь данных с окнами

Сообщение Space » 18.06.2009 (Чт) 13:47

да нет. IE запускается сам по себе (как стороннее приложение), и в нём я уже ищу поля.

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

Re: Автоматическая связь данных с окнами

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

Space писал(а):да нет. IE запускается сам по себе (как стороннее приложение), и в нём я уже ищу поля.

Ух, специально для тебя, я позадавал наводящие вопросы в этой теме. Следуй за белым... эээ, нет. Следуй по ссылкам Хакера.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Автоматическая связь данных с окнами

Сообщение Space » 18.06.2009 (Чт) 15:14

ну я уже получил хендл текстового поля в IE. Осталось получить его ID :?:

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Автоматическая связь данных с окнами

Сообщение Space » 18.06.2009 (Чт) 17:19

ладно, давайте покопаем по другому. Если нельзя получить ID поля Edit, то можно его составить. Какими уникальными и постоянными свойствами или данными обладает каждое поле Edit в браузерах, которые можно получить?

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

Re: Автоматическая связь данных с окнами

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

Ты расскажи, в чём проблема и задача, а то я, например, не понимаю. И ролик твой понимания не добавляет.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Автоматическая связь данных с окнами

Сообщение Dimen » 18.06.2009 (Чт) 17:33

Что то я не понимаю в чем сложность то?
Íå óïóñêàéòå øàíñ!

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Автоматическая связь данных с окнами

Сообщение Space » 18.06.2009 (Чт) 17:53

нужно идентифицировать поле Edit в чужой проге (IE, FireFox). Хендл поля я получил. Как получить ID поля Edit, который пишется в тегах html, или другой ID? Важно, чтобы одно и то же поле при каждой загрузке сайта в браузер идентифицировалось однозначно. Заодно, хорошо бы узнать, как перебрать все поля Edit в поисках нужного :)
Последний раз редактировалось Space 18.06.2009 (Чт) 17:56, всего редактировалось 1 раз.

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Автоматическая связь данных с окнами

Сообщение Dimen » 18.06.2009 (Чт) 17:56

Давай по порядку. Потому как я не очень тебя понял сначала, и сейчас хочу дойти до истины. Что ты имеешь ввиду под полем едит?
Íå óïóñêàéòå øàíñ!

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

Re: Автоматическая связь данных с окнами

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

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

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Автоматическая связь данных с окнами

Сообщение Space » 18.06.2009 (Чт) 17:57

поле для ввода данных, типа TextBox, но в браузере :shock: ы. Хендл поля(окна) Edit (EditBox, TextBox)

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

Re: Автоматическая связь данных с окнами

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

В операционной системе Windows нет системного объекта «поле» у которого были бы хендлы. Есть окна, контексты устройства, меню, сокеты, файлы, процессы и т.д.

Если предположить, что ты говоришь о хендле окна инпутбокса, то инпутбоксы внутри IE и FF не являются, опять же, отдельным окном. Так что непонятно, о каком хендле идёт речь.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Автоматическая связь данных с окнами

Сообщение Space » 18.06.2009 (Чт) 18:05

у меня привычка называть TextBox полем ввода данных. Аналогично и для браузера. Я думал, это понятно. Хорошо, я получил хендл окна <INPUT TYPE="TEXT"> или <INPUT TYPE="PASSWORD">. Так ясно?

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Автоматическая связь данных с окнами

Сообщение Dimen » 18.06.2009 (Чт) 18:10

Так ясно но хендла у них нету если я опять же правильно понял, это ведь хтмл страница!

Если нельзя получить ID поля Edit

Почему нельзя получить id поля? ты про какой айди говоришь? если про хтмловский то открываешь исходный код и смотришь если ты про такой говоришь
<input id="submit"
.
Ты пишешь что тебе нужно эти поля ввода заполнять в файерфокс, сложно сделать но можно эмулировать нажатия и перейти до обекта и там из буфера вставить но это ужасный вариант.
Последний раз редактировалось Dimen 18.06.2009 (Чт) 18:16, всего редактировалось 1 раз.
Íå óïóñêàéòå øàíñ!

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

zupaqanfu

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

Хорошо, я получил хендл окна <INPUT TYPE="TEXT"> или <INPUT TYPE="PASSWORD">.

У этих веб-элементов нет своего окна.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Автоматическая связь данных с окнами

Сообщение Space » 18.06.2009 (Чт) 18:14

хорошо. А что у них есть? ID-то есть точно :)

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

Re: Автоматическая связь данных с окнами

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

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

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Автоматическая связь данных с окнами

Сообщение Space » 18.06.2009 (Чт) 18:21

если ID указан в тегах, то он должен быть где-то и в свойствах окна. Ведь именно по нему идёт обращение к окну. Хендл - через AttachThreadInput и GetFocus.

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

Re: Автоматическая связь данных с окнами

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

Space писал(а):если ID указан в тегах, то он должен быть где-то и в свойствах окна. Ведь именно по нему идёт обращение к окну. Хендл - через AttachThreadInput и GetFocus.

С чего ты взял, что если ID указан, то этот атрибут должен быть в свойствах окна? С чего ты взял, что он используется в обращении (какой дурак будет использовать для обращения опциональный атрибут?). C чего ты взял, что хендл, который ты получаешь, это хендл EDIT'а, а не контейнера?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Автоматическая связь данных с окнами

Сообщение Dimen » 18.06.2009 (Чт) 18:55

Space первый вариант кода который я тебе предложил помоему это самы рациональный способ, но тебя он не устроит потому что он заполняет только IE, а мозилу не сможет. Другого способа я не вижу, хотя есть один я изложил его выше но я бы так делать не стал. Даем допустим фокус мазиле и табом перебираем до нужного элемента и вставляем. Результата хорошего этим не достигнуть.
Íå óïóñêàéòå øàíñ!

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Автоматическая связь данных с окнами

Сообщение Space » 18.06.2009 (Чт) 19:15

а это что такое, Хакер?
Код: Выделить всё
WebBrowser1.Document.All("login").Value = j
Хакер, какому дураку надо, тот и использует :)
C чего ты взял, что хендл, который ты получаешь, это хендл EDIT'а, а не контейнера?
Действительно, хендл не меняется.
Тогда что остаётся делать?
Последний раз редактировалось Space 18.06.2009 (Чт) 19:17, всего редактировалось 1 раз.

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Автоматическая связь данных с окнами

Сообщение Space » 18.06.2009 (Чт) 19:17

Даем допустим фокус мазиле и табом перебираем до нужного элемента и вставляем.
В том то и вопрос, как найти этот нужный элемент. Как его идентифицировать?

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

Re: Автоматическая связь данных с окнами

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

Space писал(а):а это что такое, Хакер?

Это ты. Внутри же ID никто не используется.

Тогда что остаётся делать?

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

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Автоматическая связь данных с окнами

Сообщение Space » 18.06.2009 (Чт) 19:22

Уууууу... Задача такая: Юзер привязывает данные к полю ввода в браузерах через нажатие горячих клавиш, когда фокус стоит на окне ввода. Затем, при загрузке этого сайта данные автоматом появляются в нужных полях. Ну всё как в менеджере паролей - автоматом заполнение полей логина и пароля в браузерах.

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Автоматическая связь данных с окнами

Сообщение Dimen » 18.06.2009 (Чт) 19:23

Поясняю.
Код: Выделить всё
<input name="login"  type="text" />


Код: Выделить всё
WebBrowser1.Document.All("login").Value = j


Заполнить надо поле с именем "login", j данном случае логин.
Íå óïóñêàéòå øàíñ!

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Автоматическая связь данных с окнами

Сообщение Space » 18.06.2009 (Чт) 20:52

да не нужен мне WB! Всё во внешнем браузере (IE, FF и т.д.)

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Автоматическая связь данных с окнами

Сообщение Space » 18.06.2009 (Чт) 20:58

вот ролик, где программулина каким-то чудом заполняет поля Логина и Пароля http://ru.stickypassword.com/sticky-pas ... lorer.html - без каких либо связок определяет где какое поле.

След.

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

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

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

    TopList