Клиент

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
I-C-E
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 18.01.2006 (Ср) 21:27

Клиент

Сообщение I-C-E » 18.01.2006 (Ср) 21:33

Я делаю клиент для онлайн-игры. У меня такой вопрос: как можно сделать что-бы мой клиент кэшировал картинки из сайта, ну что-бы он сохранял их, в определенную директорию, а потом если есть ссылка на эту картинку то брал ее не из инета а с винта. Если можно то желательно давать ответ с примером. Заранее спасибо.

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 18.01.2006 (Ср) 21:38

Проверять имя и путь к картинке.. Имеется ли она уже на диске. Если да - грузить оттуда.
При получении картинки из новой папки создавать подпапку с таким именем..

Проверять так:

Код: Выделить всё
If Len(Dir$("ПутьКТвоемуФайлу)) > 0 Then
Брать с диска
Else
Качать с сервера
End If
----

I-C-E
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 18.01.2006 (Ср) 21:27

Сообщение I-C-E » 18.01.2006 (Ср) 22:11

А как сделать проверку, как сделать так чтобы компонент браузер находя картинку проверял ее наличие на диске.

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 18.01.2006 (Ср) 22:55

Если ты имеешь в виду компонент WebBrowser, то там по умолчанию и так используется cache.
Посмотри параметры метода Navigate, там можно отключить загрузку из кэша.
----

I-C-E
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 18.01.2006 (Ср) 21:27

Сообщение I-C-E » 18.01.2006 (Ср) 23:10

А как сделать кэширование в определенный каталог???

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 18.01.2006 (Ср) 23:19

Нельзя. WebBrowser это часть Осла IE. Он такого не позволит тебе, все строго в
Local Settings\Temp\Temporary Internet Files.
----

I-C-E
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 18.01.2006 (Ср) 21:27

Сообщение I-C-E » 18.01.2006 (Ср) 23:47

С этим все понятно. А теперь еще вопрос: как сделать чтобы когда я нажимаю на ссылку, которая открывается в новом окне (тоесть путь к ней прописан так <a href="url" target=_blank>URL</a>) она открывалась не в окне ИЕ, а в новом окне которое создавалась бы в моей проге, или оно уже есть но скрытое, и при нажатии на такую ссылку оно бы появлялось и открывало страницу. Вопрос я думаю ясен. Желательно привести исходник. Заранее спасибо.

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 18.01.2006 (Ср) 23:58

Поймать WebBrowser_BeforeNavigate2

Cancel = True
Сделать видимым второй контрол который сейчас Visible = False, передать ему URL из этой же процедуры (BeforeNavigate2) на его Navigate.

P.S. Сделай переменную-флаг и когда направляешь сам, ставь его в True, в BeforeNavigate2 проверяй, если True, то Exit Sub
Только потом не забудь снять.


Код: Выделить всё

'Объявляешь флаг в секции General > Declarations
Dim Flag As Boolean

'Если посылаешь сам
Private Sub Command1_Click()
Flag = True
WebBrowser1.Navigate ("http://www.ya.ru")
End Sub

'Ловишь BeforeNavigate первого контрола
Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)

'Если флаг - True, то выход
If Flag = True Then Exit Sub

'Отменяешь загрузку здесь
Cancel = True
'Показываешь форму со вторым контролом
Form2.Show
'И открываешь то что было вызвано уже в нем
Call Form2.WebBrowser1.Navigate(URL)
End Sub

'По завершении загрузки в первом контроле - снять флаг
Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
Flag = False
End Sub
----

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

Сообщение FaKk2 » 19.01.2006 (Чт) 7:13

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

I-C-E
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 18.01.2006 (Ср) 21:27

Сообщение I-C-E » 19.01.2006 (Чт) 14:39

Сделал все как в примере выше, но все-равно не получилось, не могли бы вы выслать мне этот пример на имеил, что бы я мог увидеть как это делаеться. Заранее спасибо.

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 19.01.2006 (Чт) 14:43

Что именно не получилось? Ты хоть Form1 и Form2 создал? На каждом должно быть по WebBrowser контролу с именем WebBrowser1. Код первой формы замени кодом выше.
----

I-C-E
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 18.01.2006 (Ср) 21:27

Сообщение I-C-E » 19.01.2006 (Чт) 15:16

Все так и сделал но новое окно все равно открывается в IE, а не в форме 2. Закинь на мыло исходник плиз.

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 19.01.2006 (Чт) 15:31

Не может такого быть :)
Ок, вечером закину.
----

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 19.01.2006 (Чт) 18:09

Держи
Вложения
WebBrowserExample.rar
(2.54 Кб) Скачиваний: 25
----

I-C-E
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 18.01.2006 (Ср) 21:27

Сообщение I-C-E » 19.01.2006 (Чт) 21:55

Ну и ты хочешь сказать что этот браузер работает? Конечноже нет, ну по крайней мере он не выполняет поставленой задачи. Ну например если ввести ссылку - http://www.yandex.ru/yandsearch?text=textf&stype=www, ну типа запрос что бы яндекс искал сайты со словом ТЕКСТ, то в окне которое загрузится нажимая на ссылки они будут открываться не в новом, заранее созданом окне, а в IE как не странно. Ну сам попробуй...

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 19.01.2006 (Чт) 22:12

Гм :) Все работает.
Вообще-то перенаправляется первый Navigate на второй. Если еще хочешь чтобы ссылки нажатые во втором окне открывались там же, то добавь аналогичное в код Form2.

Заблокировать открытие в новом окне, в код второй формы:

Код: Выделить всё
Dim LastUrl As String

Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
LastUrl = URL
End Sub

Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)
Cancel = True
WebBrowser1.Navigate2 (LastUrl)
End Sub
----

I-C-E
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 18.01.2006 (Ср) 21:27

Сообщение I-C-E » 20.01.2006 (Пт) 10:55

Ну я короче проверял так: на винте создал два ХТМЛ-файла, один назвал 1.html, другой - 2.html, в первый написал такой код: <a href="2.html" target=_blank>URL</a>, и вместо http://www.ya.ru, я написал c:\1.html, потом запустил форму и кликнул на ссылку, и файл 2.html открылся не в нужном окне а в окне IE.

I-C-E
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 18.01.2006 (Ср) 21:27

Сообщение I-C-E » 20.01.2006 (Пт) 22:25

НУ ПОМОГИТЕ ХОТЬ КТО-НИБУДЬ!!! ПЛИЗ!!!

I-C-E
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 18.01.2006 (Ср) 21:27

Сообщение I-C-E » 21.01.2006 (Сб) 0:33

Всем спасибо! Сам нашел решение -

Нужно обработать событие NewWindow2 (frmWebBrowser - это форма, содержащая браузер, brwWebBrowser - имя контрола на форме):

Private Sub brwWebBrowser_NewWindow2(ppDisp As Object, Cancel As Boolean)
Dim frm As Form
On Error Resume Next

Set frm = New frmWebBrowser
frm.Show
Set ppDisp = frm.brwWebBrowser.object

Err.Clear
end sub

I-C-E
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 18.01.2006 (Ср) 21:27

Авторизация

Сообщение I-C-E » 21.01.2006 (Сб) 0:36

Еще один вопрос: как авторизироваться на сайте http://combats.ru? А то я всю главную страницу обшарил а так и не придумал как это сделать.

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 21.01.2006 (Сб) 1:48

Может стоит раз подумать самому?
----

I-C-E
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 18.01.2006 (Ср) 21:27

Сообщение I-C-E » 21.01.2006 (Сб) 2:24

Хороший совет. Я подумал и вот нашел ответ - http://capitalcity.combats.ru/enter.pl? ... psw=******

Крост
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 291
Зарегистрирован: 30.01.2005 (Вс) 6:06
Откуда: Питер

Сообщение Крост » 21.01.2006 (Сб) 5:34

I-C-E
Господи! Ты клиент для БК делаешь???? Скажу сразу, занимался я этим на протяжении нескольких месяцев..потом забросил...если ты делаешь для заработка, не советую...КБ всё равно чаще покупают...
Тем более, с ТАКИМ опытом работы в ВБ (попрошу без обид) ты клиент сделаешь как минимум к концу года... Там столько аспектов учитывать надо, но если же всё-таки решил делать, то могу помочь с решением вопросов (а их будет очень много, поверь). Пиши в ЛС, на мыло, в аську (часто в инвизе, так что в офф пиши) если что.. Лучше конечно в ЛС..=)

С уважением Андрей.
Последний раз редактировалось Крост 21.01.2006 (Сб) 6:13, всего редактировалось 1 раз.
Хороший :D, плохой :x, злой :twisted:.

(Не)Люблю кАпаться в чЮжих сорсах.

Хочешь узнать что такое Piligrim? Прошу - http://www.piligrim-gps.ru/

Крост
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 291
Зарегистрирован: 30.01.2005 (Вс) 6:06
Откуда: Питер

Сообщение Крост » 21.01.2006 (Сб) 5:36

I-C-E
Да, на счёт авторизации... могу сказать, что прямая ссылка - не выход из ситуации...нет безопастности...пароль можно увидеть в журнале IE... :?
Хороший :D, плохой :x, злой :twisted:.

(Не)Люблю кАпаться в чЮжих сорсах.

Хочешь узнать что такое Piligrim? Прошу - http://www.piligrim-gps.ru/

I-C-E
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 18.01.2006 (Ср) 21:27

Сообщение I-C-E » 21.01.2006 (Сб) 22:43

Крост
Благодарю за сотрудничество.[/b]

Крост
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 291
Зарегистрирован: 30.01.2005 (Вс) 6:06
Откуда: Питер

Сообщение Крост » 21.01.2006 (Сб) 23:41

I-C-E
Обращайтесь. =)
Хороший :D, плохой :x, злой :twisted:.

(Не)Люблю кАпаться в чЮжих сорсах.

Хочешь узнать что такое Piligrim? Прошу - http://www.piligrim-gps.ru/


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

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

Сейчас этот форум просматривают: AhrefsBot и гости: 194

    TopList