Страница: 1 |
Захотелось сделать Веб Браузер с использованием MSInternet control. Но проблема с процедуруй BeforeNavigate2.Эта процедура вызывается перед загрузкой страницы, в неё передаются несколько переменных (URL и. т. п.). Проблема: Попробуйте вывести на экран значение переменной PostData... Вы увидите что-то типа ??????????????????. Как я понимаю, это все через Variant. Что можете посоветовать?
Возможно здесь трабл связан с уникодом. А вообще же, хочешь сделать хороший броузер, не давай IE control самому рыться в Инете - он это делает плохо. Сам закачивай страницы (плюсов масса - сам сможешь регулировать, какие типы файлов и чем отображать, сможешь создавать броузабельную копию сайтов в кеше, сможешь более эффективно этот кеш использовать), и передавай их контролу ТОЛЬКО ДЛЯ ОТОБРАЖЕНИЯ. Если не знаешь протокола HTTP, посмотри на сайте wasm.ru, в статье "Пишем свой веб-сервер", автор Aquila Ну, думаю, здесь дело в том, что VB внутре использует уникод, а PostData содержит ASCII... Чисто первое предположение (неохота проверять). Рэшэния эсть? При отправке вопросительных знаков, Headers содержит "Content-Type: application/x-www-form-urlencoded", что позволяет предположить, что содержимое формы urlencoded. Таким образом, нужно найти, как броузер отправляет данные из формы и, по возможности, расшифровать их. MSDN же говорит, что "PostData - Data to send to the server if the HTTP POST transaction is being used." Попробуй посмотреть, что передается процедуре, у меня такое ощущение, что здесь траббл с типом Variant Нет, ты не правильно предполагаешь. Headers это всего лишь одно поле НТТР заголовка определяемое браузером, и предполагать что-то по нему нет смысла. >Таким образом, нужно найти, как броузер отправляет данные из формы и, по >возможности, расшифровать их. А зачем???Зачем нам что-то находить если все вынесено в саму процедуру BeforeNavigate2?Вот загвоздка с этой PostData, все есть только ета одна переменная... Я пробовал перехватывать данные ложным прокси-сервером, но получается не по человечески - Internet Explorer тоже думает что это его прокси . Короче, выход кажется один - написать в Майкрософт о найденном баге (может исправлят) Молодой человек, кончайте надоедать. Ясно было сказано, а теперь еще и проверено с помощью SoftIce, что аргумент PostData передается правильный, но VB воспринимает его как Unicode. И для решения вашей невероятно огромной проблемы достаточно написать: Private Sub wb_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean) MsgBox StrConv(PostData, vbUnicode) End Sub Спасибо за ответ, но нафига выпендриваться?Форум и есть для того, чтоб что-то спросить. Думаешь что очень умный почему сразу не ответил? Прочитай свой предпоследний пост и поймешь, что вызвало у человека, который тебе ничем не обязан, такое раздражение. CyRax бы тебя вообще убил бы )) > Думаешь твоя прога для правки реестра само совершенство?Открываю всем секрет: regedit.com Открываю секрет: в списке использованной литературы твой regedit.com только на 4-м месте. На первом - X-teq X-Setup, втором - RegMon, третьем - winall.com (или как его там?) К тому же моя программа писалась за день до поезда и впихнуть туда больше я просто не успел (а сейчас просто лень) хорошо, забили. Спасибо большое за совет/ответ. Забили. Страница: 1 |
Вопрос: Variant = ???????????
Добавлено: 18.12.03 17:56
Автор вопроса: DaSharm | Web-сайт:
Ответы
Всего ответов: 13
Номер ответа: 1
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #1
Добавлено: 20.12.03 21:07
Номер ответа: 2
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #2
Добавлено: 20.12.03 21:41
Вот именно!Я так и хочу, иначе я бы вообше не использовал beforenavigate2, эта процедура как раз мне и для вырывания ссылки и ПОСТ данных нужна. На счет НТТР, то сразу скажу, что знаю этот протокол очень хорошо. Флудеры для чатов надоело делать, так хочу многопоточный ВЕБ-браузер сделать, а тут, такая загвоздка...Можно подробнее про юникод?
Номер ответа: 3
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #3
Добавлено: 20.12.03 23:24
Номер ответа: 4
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #4
Добавлено: 22.12.03 15:20
Номер ответа: 5
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #5
Добавлено: 22.12.03 17:18
Номер ответа: 6
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #6
Добавлено: 22.12.03 19:09
Номер ответа: 7
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #7
Добавлено: 22.12.03 20:38
Номер ответа: 8
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #8
Добавлено: 22.12.03 20:57
Номер ответа: 9
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #9
Добавлено: 22.12.03 20:58
Номер ответа: 10
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #10
Добавлено: 22.12.03 21:01
Думаешь твоя прога для правки реестра само совершенство?Открываю всем секрет: regedit.com Там скачайте хелп, и все что делает прога - там есть. Что нет - выловите регмоном.
Номер ответа: 11
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #11
Добавлено: 22.12.03 21:07
Номер ответа: 12
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #12
Добавлено: 22.12.03 23:08
Номер ответа: 13
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #13
Добавлено: 23.12.03 00:00