Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 50

Управление HTML-формой через связанное окно браузера

05.06.2011, 16:44. Показов 2418. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в общем, так. есть HTML-форма.

HTML5
1
2
3
4
5
6
<form action=`http://127.0.0.1/site/up.php` method=post enctype=`multipart/form-data` name='mform'>
<input type=`file` name=`xmlfile`>
 
<input type=`submit` name=`submit` value=`upload file`>
 
</form>
есть VB-код.

Visual Basic
1
2
3
4
5
6
7
Dim mBr As Object
Set mBr = New InternetExplorer
mBr.Visible = True
mBr.Navigate 'tmpquery.htm'
mBr.Document.forms('mform').elements('xmlfile').Value = 'some string'
mBr.Document.forms('mform').elements('submit').Value = 'закачаться'
mBr.Document.forms('mform').submit.Click
загвоздка в том, что для элемента submit свойства меняются так, как им и следовало бы. а вот для элемента xmlfile никак не удается задать свойство Value. то есть, программно не получается указать ослу, какой файл грузить из данной формы открытой страницы.

через SendKeys ничего в это поле отправить не получается. ставлю фокус на нужное поле, отрабатываю SendKeys, но комп откликается системным Ding и ничего не происходит.

если прописать value=somestring прямо в HTML, то это тоже не срабатывает. страница грузится с пустым полем.

вообще для элемента типа 'file' устанавливаются свойства src, innerHTML, nodeValue, но их изменение не приводит к желаемому результату. отработка же установки Value не вызывает ошибки, но и не сменяет значения свойства на необходимое.

короче, други, как мне программно изменить Value для поля типа Text?..
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.06.2011, 16:44
Ответы с готовыми решениями:

Стандартное модальное окно браузера с формой входа
Всем привет! Вопрос такой, уже не знаю где и искать. На локалке стоит phpmyadmin 2.10.3 При открытии страницы выскакивает форма...

Управление формой через свойства
Добрый день. Встал вопрос структуры работы организации. Сейчас около 75 объектов, в дальнейшем их более 100 будет и при любых...

Управление формой через другую форму
Доброго дня! Мне нужно управлять формой через другую форму. Например: на form1 есть label1, а на form2 textbox1, мне нужно чтобы текст...

16
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 50
05.06.2011, 16:45  [ТС]
тьфу, блин. не для поля типа Text, а для File.
для Text как раз все изменяется на ура...
0
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
06.06.2011, 12:56
КОгда то я тоже столкнулся с такой проблемой.
Видимо, дело в безопасности. В часности, в Win9x пароли хранились в pwl файлах, которые легко можно было скопировать и расшифровать.
Т.е. получается, что можно было написать, который при заходе на страницу автоматом заполняет поле типа Файли отправляет на сервер.
Судя по MSDN, у этого объекта вообще отстутсвуют свойства Value и Text. Однако, однажды я заметил, как это использовалось на Photocenter.ru. Там онлайн закачка фотографий с пердварительным отображением. НО. Там это свойство использовалось ТОЛЬКО на чтение.
КРоме того, в MSDN такую строчку нашел: When a file is uploaded, the file name is also submitted. The path of the file is available only to the machine within the Local Machine security zone. The value property returns only the file name to machines outside the Local Machine security zone. See About URL Security Zones for more information on security zones.
0
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
06.06.2011, 12:59
Да, посмотрел описание по свойству Value.
Вот что вышло: input type=file The value, a file name, typed by the user into the control. Unlike other controls, this value is read-only.
0
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
06.06.2011, 13:06
ПО поводу SendKeys, у меня работает. Только ты проверь, чтобы фокус был именно на броузере, т.е. если надо, делай ему SetFocus.
Code
1
2
mBr.Document.Forms('mform').elements('xmlfile').focus
SendKeys '{F}'
0
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 50
06.06.2011, 13:50  [ТС]
ну, не знаю, в какой безопасности может быть дело. в конце концов, можно тем же скриптом, который 'не смог' указать ослу конкретный файл, послать тот же SendKeys (не уверен конечно, в VBS я не силён), или через read-only прочитать необходимый файл в переменную и запостить его вручную (опять же не знаю, можно ли будет из VBS создать объект XMLHTTP или что-то подобное)... короче, непонятки.

а по поводу SendKeys я уже кажися писал, что у меня с ним тож трабла. например SendKeys 'c:autoexec.bat', - я пытался вставить реально существующий файл, думал, мож браузер это как-то проверяет, - отрабатывается с системным звяком из колонок, но ничего никуда не вставляет. фокус на поле ставил и руками, и тем способом, что ты писал. нуль.

может, конечно, дело в том, что я вообще-то пишу не в чистом VB, а в VBA из-под Ворда 2000, не знаю. но все остальное же работает, причем и более серьезные штуки...

да мне вот даже не очень нужен этот осел со всеми его гиморами. мне просто нужен несложный способ одним приемом отослать на сервер пару файлов через POST HTTP. один текстовый, второй джейпег. связываться с WinSock, WinHTTP и прочими API желания нет, т.к. все это мне наверняка больше не пригодится, а пока что-то получится, гимора придется словить кучу, особенно с построением заголовков (имел уже опыт). пусть это будет какой-то контрол, или враппер (тока чтоб видно было, какие данные ему куда совать, а то видел пару - так там пока весь модуль не перелопатишь - непонятно, какие куда флаги и стринги подпихивать), или я дальше буду мучить осла...
0
pl
51 / 17 / 6
Регистрация: 18.05.2007
Сообщений: 1,322
06.06.2011, 13:50
RTFM: value property is read only for INPUT type=file
0
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
06.06.2011, 13:59
Нет ну примеров через Winsock | Inet Transfer Control передачи файлов куча, но почему через WebBrowser не получается - не могу понять. Попробуй также заполнить обычное текстовое поле. Именно через SendKeys, а не через .Value.
2pl: с этим никто не спорит, не в том дело. Через SendKeys то его получается заполнить. у меня.
0
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 50
06.06.2011, 14:13  [ТС]
через Value - зашибись. через SendKeys - опять звякает и ничего не делает.

и тут переделал (мало ли чего)
Visual Basic
1
2
Dim mBr As shdocvw.InternetExplorer
Set mBr = New shdocvw.InternetExplorer
и тут переделал
Visual Basic
1
2
3
mBr.Document.focus
mBr.Document.forms('mform').elements('xmltext').focus
SendKeys '{F}', True
такая фигня...

впечатление такое, что SendKeys не знает, куда передавать... мож еще какой объект создать, и туда попробовать? как вот, например, создать обычный блокнот?
CreateObject('Notepad.Application') ?
))
0
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 50
06.06.2011, 14:28  [ТС]
SendKeys Statement: Sends one or more keystrokes to the active window as if typed at the keyboard.

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

щас буду пробовать
0
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 50
06.06.2011, 14:34  [ТС]
Yeah, baby, yeah!!! ))
0
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
06.06.2011, 15:03
ну так прошло? ))
0
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 50
06.06.2011, 19:06  [ТС]
да, все работает.

теперь вот меня беспокоит тот факт, что на одном из компов (под вин98) я через привязанный к проекту ShDocVw.dll таки не смог создать InternetExplorer, Васик ругался, что чего-то там не может создать...
получается, что опять универсальности нету. опять надо озадачиваться поиском кода, могущего отправлять файло через POST HTTP.

может, чем подсобишь, а?.. товариЩ?)))
0
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
06.06.2011, 19:16
глянь вот это, может поможет...
http://www.vbip.com/forum/topic.asp?id=2300
http://www.developerfusion.com/scripts/print.aspx?id=3272
0
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 50
06.06.2011, 19:40  [ТС]
ого!.. за второй линк - огромная моя тебе благодарность. именно этого мне и не хватало, ё-моё.

а насчет XMLHTTP... я вот им сейчас и пользуюсь. и, оказывается, в разных версиях офиса эта библиотечка имеет тож разные версии, а свою, таскаемую с собой на флешке, на чужом компе зарегистрировать не удается, ошибка какая-то выскакивает (лень разбираться, какая именно). получается, что, приходя на офис 97 - надо подключать одну версию, и это если на тачке офис стоит; переходя на другую - другую версию. заколебало, однако. да и не все там и работает гладко, в разных то версиях..
0
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
07.06.2011, 15:01
хм... всмысле не удается зарегистрировать? Ошибку опиши.
Сделай одну рабочую версию и с ней ходи по компам)
0
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 50
07.06.2011, 20:31  [ТС]
ошибка там судя по всему заключается в глюкавости винтукея. слишком много неудачнопоставленных опытов)) . ну и версия офиса тож 97. а таскаемый с собой компонент от 2000-го.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.06.2011, 20:31
Помогаю со студенческими работами здесь

Как вставить HTML код в открытое окно браузера
Я вот видел что ПРОМТ XT может интегрироваться в Интернет Эксплорер и при выделении текста просто кликаешь правой кнопкой и говоришь...

Подскажите,как растянуть картинку фона на все окно браузера? В HTML
Подскажите,как растянуть картинку фона на все окно браузера? В HTML

Вход в админку сайта через стандартное окно браузера
Есть код : if(isset($_GET)) { header('WWW-Authenticate: Basic realm=&quot;&quot;'); header('HTTP/1.0 401 Unauthorized'); ...

Как вывести значение факторила именно на саму страницу ,а не через окно браузера
Ребят есть js code , выводит значение факториала через окошко браузера, как его вывести допустим в на саму страницу? Никак не могу понять...

Управление HTML страницей javascript-ом через локальное приложение
Здравствуйте, уважаемые форумчане. Надеюсь у вас всех хорошее настроение и этот день вы провели отлично. У меня возник вопрос. Может...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru