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

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

05.06.2011, 16:44. Показов 2403. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru