Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Variant = ??????????? Добавлено: 18.12.03 17:56  

Автор вопроса:  DaSharm | Web-сайт: dasharm.com | ICQ: 780477 

Захотелось сделать Веб Браузер с использованием MSInternet control.

Но проблема с процедуруй BeforeNavigate2.Эта процедура вызывается перед загрузкой страницы, в неё передаются несколько переменных (URL и. т. п.). Проблема:

Попробуйте вывести на экран значение переменной PostData...

Вы увидите что-то типа ??????????????????. Как я понимаю, это все через Variant.

Что можете посоветовать?

Ответить

  Ответы Всего ответов: 13  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 20.12.03 21:07

Возможно здесь трабл связан с уникодом. А вообще же, хочешь сделать хороший броузер, не давай IE control самому рыться в Инете - он это делает плохо. Сам закачивай страницы (плюсов масса - сам сможешь регулировать, какие типы файлов и чем отображать, сможешь создавать броузабельную копию сайтов в кеше, сможешь более эффективно этот кеш использовать), и передавай их контролу ТОЛЬКО ДЛЯ ОТОБРАЖЕНИЯ. Если не знаешь протокола HTTP, посмотри на сайте wasm.ru, в статье "Пишем свой веб-сервер", автор Aquila

Ответить

Номер ответа: 2
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #2
Добавлено: 20.12.03 21:41
Вот именно!Я так и хочу, иначе я бы вообше не использовал beforenavigate2, эта процедура как раз мне и для вырывания ссылки и ПОСТ данных нужна. На счет НТТР, то сразу скажу, что знаю этот протокол очень хорошо. Флудеры для чатов надоело делать, так хочу многопоточный ВЕБ-браузер сделать, а тут, такая загвоздка...Можно подробнее про юникод?

Ответить

Номер ответа: 3
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #3
Добавлено: 20.12.03 23:24

Ну, думаю, здесь дело в том, что VB внутре использует уникод, а PostData содержит ASCII... Чисто первое предположение (неохота проверять).

Ответить

Номер ответа: 4
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #4
Добавлено: 22.12.03 15:20

Рэшэния эсть?

Ответить

Номер ответа: 5
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #5
Добавлено: 22.12.03 17:18

При отправке вопросительных знаков, 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

Ответить

Номер ответа: 6
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #6
Добавлено: 22.12.03 19:09

Нет, ты не правильно предполагаешь. Headers это всего лишь одно поле НТТР заголовка определяемое браузером, и предполагать что-то по нему нет смысла.

>Таким образом, нужно найти, как броузер отправляет данные из формы и, по

>возможности, расшифровать их.

А зачем???Зачем нам что-то находить если все вынесено в саму процедуру BeforeNavigate2?Вот загвоздка с этой PostData, все есть только ета одна переменная...

Я пробовал перехватывать данные ложным прокси-сервером, но получается не по человечески - Internet Explorer тоже думает что это его прокси :).

Короче, выход кажется один - написать в Майкрософт о найденном баге (может исправлят)

Ответить

Номер ответа: 7
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #7
Добавлено: 22.12.03 20:38

Молодой человек, кончайте надоедать. Ясно было сказано, а теперь еще и проверено с помощью 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

Ответить

Номер ответа: 8
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #8
Добавлено: 22.12.03 20:57

Спасибо за ответ, но нафига выпендриваться?Форум и есть для того, чтоб что-то спросить. Думаешь что очень умный почему сразу не ответил?

Ответить

Номер ответа: 9
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #9
Добавлено: 22.12.03 20:58

Прочитай свой предпоследний пост и поймешь, что вызвало у человека, который тебе ничем не обязан, такое раздражение. CyRax бы тебя вообще убил бы :)))

Ответить

Номер ответа: 10
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #10
Добавлено: 22.12.03 21:01
Думаешь твоя прога для правки реестра само совершенство?Открываю всем секрет: regedit.com Там скачайте хелп, и все что делает прога - там есть. Что нет - выловите регмоном.

Ответить

Номер ответа: 11
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #11
Добавлено: 22.12.03 21:07

> Думаешь твоя прога для правки реестра само совершенство?Открываю всем секрет: regedit.com

Открываю секрет: в списке использованной литературы твой regedit.com только на 4-м месте. На первом - X-teq X-Setup, втором - RegMon, третьем - winall.com (или как его там?)

К тому же моя программа писалась за день до поезда и впихнуть туда больше я просто не успел (а сейчас просто лень)

Ответить

Номер ответа: 12
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #12
Добавлено: 22.12.03 23:08

хорошо, забили. Спасибо большое за совет/ответ.

Ответить

Номер ответа: 13
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #13
Добавлено: 23.12.03 00:00

Забили.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам