Как заполнить поле с файлом в WebBrowser?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
CodeName33
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 297
Зарегистрирован: 01.09.2004 (Ср) 13:25
Откуда: SPb

Как заполнить поле с файлом в WebBrowser?

Сообщение CodeName33 » 14.11.2005 (Пн) 18:01

Привет всем! Собсно вот. Нужно заполнить форму, которая будет отправлять файл. Но IE не даёт вписать путь в value файлового элемента (Собсно не только IE, а любой нормальный браузер и я даже понимаю зачем это сделано - чтобы злые люди скриптами не могли заполнять такие поля и не скачивали у пользователей файлы которые они вовсе не хотят отдавать...). Но всё-таки может есть какой нибудь путь заполнить это поле из элемента WebBrowser?
Программисты не глючат - глючат компиляторы...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 14.11.2005 (Пн) 20:53

CodeName33, переформулирую твой вопрос - "я знаю что нельзя, и знаю почему, но может всё-таки можно?"
Только через дыру в IE, наверное. А эти дыры регулярно прикрывают.
Хочешь каждый месяц переписывать свою прогу?
Изображение

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 14.11.2005 (Пн) 21:21

Я кстати решил эту проблему :)

Если файл текстовый, можно смело отсылать в теге input type=text. Если файл бинарный, то его нужно конвертировать в base64, таким образом он станет текстовым. Ну а текстовый файл ты уже знаешь как отправлять :)

Есс-сно, принимающая сторона должна эту строку декодировать в бинарник перед использованием.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

CodeName33
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 297
Зарегистрирован: 01.09.2004 (Ср) 13:25
Откуда: SPb

Сообщение CodeName33 » 15.11.2005 (Вт) 14:27

FAKK2 нет, так не подходит. Принимающая сторона мной не контролируется.

Ладно, буду искать другие способы...
Программисты не глючат - глючат компиляторы...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.11.2005 (Вт) 18:14

FAKK2, подожди - а как ты читаешь текст из файла? неужели через FSO?
Изображение

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 15.11.2005 (Вт) 19:17

tyomitch
В жизни FSO не пользовался :)

Я не помню как я конкретно читал, скорее всего Open For Binary. Помню что мучался с массивом байт, который VB делал в юникоде.

Кстати, у меня была еще и проблема на принимающей стороне, сохранить бинарники как то не получалось. За неимением метода я их записывал в текстовом поле, а при использовании, на лету декодировал из base64.

Дома поищу, может тот исходник остался.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 15.11.2005 (Вт) 19:19

CodeName33

Если не подходит, тогда тебе остается изучить протокол HTTP, и слать файл напрямую, минуя webbrowser.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.11.2005 (Вт) 19:41

FAKK2 писал(а):tyomitch
В жизни FSO не пользовался :)

Я не помню как я конкретно читал, скорее всего Open For Binary.

В VBS нету Open For Binary.
Что-то ты тут темнишь.
Изображение

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 16.11.2005 (Ср) 0:14

tyomitch
Почему VBS (я полагаю, ты имеешь ввиду VBScript)? Вопрос вроде по VB...

Update: Ааа, понял. Автор имеет ввиду из страницы заполнить поле. :oops: Тогда хз, не пробовал :)
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 16.11.2005 (Ср) 0:20

CodeName33
Если тебе надо послать файл используя VBScript я способа не знаю :)
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

CodeName33
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 297
Зарегистрирован: 01.09.2004 (Ср) 13:25
Откуда: SPb

Сообщение CodeName33 » 17.11.2005 (Чт) 23:47

Сам нашёл как решить проблему!

Получаю hwnd WebBrowser'а (стандартное свойство hwnd чё то ошибку выдаёт, делаю через GetWindow - там у браузера 3 вложенных окна, нужно последнее), затем выполняю установку фокуса на файловое поле:
Код: Выделить всё
WB.Document.Forms(НОМЕР_ФОРМЫ).МОЙ_ФАЙЛОВЙ_ЭЛЕМЕНТ.focus

и когда фокус на нём посылаю ему по одному символу путь к файлу через SendMessage с константой WM_CHAR и всё работает!!! Ура!
Программисты не глючат - глючат компиляторы...

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

Сообщение alibek » 18.11.2005 (Пт) 9:04

И как ты из VBS выполняешь API-функции?
Lasciate ogni speranza, voi ch'entrate.

CodeName33
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 297
Зарегистрирован: 01.09.2004 (Ср) 13:25
Откуда: SPb

Сообщение CodeName33 » 18.11.2005 (Пт) 9:46

alibek а я ни слова про VBS не говорил! Это уже полёт фантазий во время обсуждения темы дошёл до VBS... :)

Я имел в виду VB обычный и контрол WebBrowser.
Программисты не глючат - глючат компиляторы...


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17

    TopList