Страницы: 1
RSS
Диалоговые окна в Internet Explorer
 
Стопорнулся на таком моменте: на странице в IE с помощью vba открывается форма для загрузки файлов (при перетескивании на нее файлов начинается загрузка их на сервер, при нажатии ЛКМ по форме открывается диалоговое окно выбора файлов)
1) собственно вопрос первый - как программно через VBA отправить на форму файл, чтобы произошло Drag&Drop
2) либо объясните, пожалуйста, как работать с диалоговыми окнами? ведь если даже программно нажать чтобы открылось диалоговое окно, то код VBA какбы ставится на паузу, пока я "ручками" не закрою это диалоговое окно.

Страница на которой это надо реализовать - https://vk.com/page-28774435_47321332?act=edit (тут надо нажать на иконку фотографии для вызова вышеописанной формы)
Выкладываю файл для примера, но у вас может не сработать часть кода, которая нажимает иконку фотографии:
SetCursorPos 600, 190 'x and y position (чуть что подкорректируйте координаты)
 
Неужели никто не работал с диалоговыми окнами в vba?
 
Молчат,как партизаны :D
Юзайте функции  Winapi,как минимум эти

FindWindowByCaption
SendMessageByString
SendMessage
keybd_event  
 
Пример того, как надо заливать файлы на сайте через IE:
http://excelvba.ru/code/UploadFile

PS: я бы делал без использования IE (использовал бы WinHTTPRequest), и, тем более, без SetCursorPos (щелчок на элементе на веб-странице выполняется методом Click, - всего одна строка кода)

Пример кода дать не могу, - код у вас будет весьма сложный

PS: вы же в коде правильно писали:
Код
1
IE.Document.getElementById("choose_photo_upload").Click
так и надо щелкать
зачем стали использовать SetCursorPos ???
 
Игорь, потому что Вконтакте необходимая кнопка (по которой клацаю наведением курсора) на странице видна, но при просмотре кода ее нет (видимо она появляется при просмотре страницы с помощью скрипта).

Вот код той кнопки при исследование элемента в chrome:
Код
1
<a id="wke_b_image" class="fl_l wke_b" wiki="image" tooltip="Добавить фотографию" onmousedown="cur._wke[1].button(this, event);"  onmouseup="cur._wke[1].buttonUp(this);" onmouseover="cur._wke[1].ttOver(this);" onmouseout="cur._wke[1].ttOut(this);" style="background-position: 0px -240px;"></a>
и код IE.Document.getElementById("wke_b_image" ;) .Click не работает, т.к. при просмотре кода страницы этого кода нет
Изменено: virus555 - 09.06.2014 08:23:20
 
Я не совсем в теме, но я бы начал с рассмотрения API. Может там есть то что нужно вам?
 
pharmaprofi, с этого и начал, там этого нет
 
Цитата
код
Код
1
IE.Document.getElementById("wke_b_image").Click
не работает, т.к. при просмотре кода страницы этого кода нет
это потому, что вы не дожидаетесь готовности браузера (IE.Busy) после загрузки страницы

и, кстати, разным браузерам может выдаваться разный код веб-страниц
нюансов много
 
Игорь, ну тут точно дело не в ожидании готовности браузера и не в разности браузеров, потому что код
Код
1
Range("A1") = IE.Document.getElementById("wke_b_image").outerhtml
возвращает полный код кнопки (текст кода приводил выше)
но click для этого ID почему-то не срабатывает
Изменено: virus555 - 09.06.2014 13:54:41
Страницы: 1
Читают тему
Наверх
Loading...