Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11631
Последний выпуск: 19.06.2015

Отправка GET-форм из программы на VB

Почти на всех сайтах в интернете есть формы, т.е. определённые текстовые поля, CheckBox'ы (множественный выбор), кнопки и т.д. Примером формы может служить форма для отправки сообщения, например, в службу поддержки какого-то сайта. Для этой формы необходимо текстовое поле с именем автора, с его обратным e-mail'ом, с сообщением, а также кнопка для отправки сообщения. После того, как пользователь нажимает на эту кнопку, в браузере загружается страница с подтверждением отправки письма.

Большинство людей, когда слышат "метод POST или GET", то у них возникают ассоциации с HTML-формами и PERL. И это не случайно - эти два метода передачи данных чаще всего используют в WEB-сайтах. Но как оказалось один из этих методов можно использовать и в VB. Я расскажу как устроен метод GET и как с помощью своей программы отправлять сообщения.

Каждый элемент формы имеет свои свойства, двумя из которых являются имя и значение. Например у текстового поля может быть имя "e_mail_text", а значение "your@e-mail.ru". У CheckBox'а имя может быть "Check1", а значение "1" (в отличии от VB в HTML "галочка" может принимать значение не только "1", но и любоё другое, например "yes"). Также у всех объектов есть свой тип. Например, кнопка - button, текстовое поле - text, кнопка для отправки - submit, а кнопка для очистки полей - reset. Также существуют объекты типа hidden, которые не видны на странице, но также имеют имя и значение.

Так вот после того, как пользователь нажмёт на кнопку отправки, браузер генерирует адрес страницы, на которую потом переходит пользователь. Вначале строки идёт адрес до CGI скрипта с вопросительным знаком на конце, например:

http://www.someserver.ru/cgi-bin/cgi_script.cgi?

Затем идёт имя первого элемента формы, после чего ставиться "=" и пишется его значение, потом "&" и имя второго элемента и т.д. В случае с отправкой сообщения в службу поддержки строка будет иметь вид:

http://www.someserver.ru/cgi-bin/cgi_script.cgi?
author=Some%20User&e-mail=user_email%40domen.ru&message=Some%20Message

Здесь "Some User" - имя автора, "user_mail@domen.ru" - обратный e-mail, а "Some Message" - сообщение. Из-за того, что в адресе не могут быть пробелы и другие специфические символы (к которым относятся и буквы русского алфавита), их заменяют на символ "%", после которого идёт номер ASCII символа в 16ти разрядном виде.

Для этого можно разобрать пример на самой простой программе, например для поиска на Яndex'е. Для этого создаёте новый проект и поместите на него текстовое поле с кнопкой.

Теперь напишем код для кнопки:

Private Sub Command1_Click()
'Объявляем переменную для хранения сгенерированной строки
Dim SearchString As String
'Переменная для текущего символа
Dim Char As Byte
'Для цикла For
Dim I As Integer

'Путь до CGI файла и имя параметера - начальное
'значение переменной SearchString
SearchString = "http://www.yandex.ru/yandsearch?text="

'Перебираем все символы и, в зависимости от того, с каким
'символом работаем, добавляем его к строке поиска
For I = 1 To Len(Text1)
    Char = Asc(Mid(Text1, I, 1))
    If Char > 96 And Char  64 And Char 

Теперь создаём новый модуль и пишем:

Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Function ExecuteFile(ExecuteFileProgramHWND As Long, ExecutableFile _
As String, Method As Integer)
ShellExecute ExecuteFileProgramHWND, "Open", ExecutableFile, _
vbNullString, Empty, Method
End Function

Эта функция вызывает связанное с открываемой строкой приложение. Например, если Вы открываете файл "c:\myfile.mp3", то загружается программа, проигрывающая mp3 файлы. Тут тоже самое: начальные символы "http://" свидетельствуют о том, что это интернет-адрес, и нужно открывать браузер.

Теперь запустите программу и введите какую-нибудь строку для поиска и нажмите "Поиск". Должен загрузиться браузер, в котором, после подключения к интернету, должна появиться страница с результатами поиска.

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
Аноним
Мне нравитсяМне не нравится
24 января 2006, 19:11:07
Для анонима. Модуль создается так:
На верхней панели есть кнопки для создания проекта и формы, около формы есть треугоьничек вниз нажми на него, там в меню надо выбрать Модуль
2.
Аноним
Мне нравитсяМне не нравится
20 сентября 2005, 19:13:29
это приемлемо где нет проверки Get или Pоst
а если нужно передать именно с помощью Post???
WebBrowser.Navigate и как правильно указывать PostData???
3.
Аноним
Мне нравитсяМне не нравится
18 мая 2005, 13:03:55
Как я долго это искал !! спасибо за инфу
4.
Аноним
Мне нравитсяМне не нравится
8 июля 2004, 21:16:57
Как создать новый модуль?
Объясните пожалуйста.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог