1 / 1 / 0
Регистрация: 31.10.2008
Сообщений: 21
1

Как узнать когда загрузилась страница в webBrowser?

02.06.2009, 22:46. Показов 7019. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Собствено вопрос как узнать загрузилась страница в webBrowser в C#?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.06.2009, 22:46
Ответы с готовыми решениями:

Как узнать текущий zoom в Webbrowser?
Собственно сабж. Надо откорректировать как-то ширину элемента веббраузера относительно его зума,...

TabControl как узнать в обработчике, какая страница открыта?
while () { TabPage tabPage = new...

Как программно узнать какая страница открыта в браузере
Как программно узнать какая страница открыта в браузере, если это нельзя сделать на c# то на каком...

Загрузилась страница?Как сделать чтобы было видно сколько % загрузилась страница.
Какой код нужно ввести во Front Page чтобы показывался процент сколько страница загрузилась.

12
107 / 107 / 9
Регистрация: 02.06.2009
Сообщений: 578
02.06.2009, 22:56 2
щелкните два раза по webBrowser, сгенерируется событие DocumentCompleted. Вот тут и запишите код, который надо сделать после загрузки документа.
0
1 / 1 / 0
Регистрация: 31.10.2008
Сообщений: 21
03.06.2009, 13:45  [ТС] 3
Есть сайт people.md/profile/777.. 777 это id user...задается диапазон ID юзеров например от 100 до 500 страницы которых нужно посетить...мне нужно чтобы при нажатии кнопки включался цикл.. при повторном нажатии на кнопнуку включалась пауза...
C#
1
2
3
4
for (int i = Convert.ToInt32(textBox1.Text); i <= Convert.ToInt32(textBox2.Text); i++)
    {
       webBrowser1.Navigate("http://www.people.md/profile/" + Convert.ToString(i));
    }
когда нажимаю кнопку страницы загружаются не поочередно а сразу переходит к последней странице в заданом диапазоне. Подскажите как исправить это дело?
0
107 / 107 / 9
Регистрация: 02.06.2009
Сообщений: 578
03.06.2009, 13:48 4
Цитата Сообщение от graph Посмотреть сообщение
for (int i = Convert.ToInt32(textBox1.Text); i <= Convert.ToInt32(textBox2.Text); i++) { webBrowser1.Navigate("http://www.people.md/profile/" + Convert.ToString(i)); }
Вот это в какое событие вставляете?
0
1 / 1 / 0
Регистрация: 31.10.2008
Сообщений: 21
03.06.2009, 14:00  [ТС] 5
как вы сказали в событие браузера.. ничего не изменилось
C#
1
2
3
4
5
6
 private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
 for (int i = Convert.ToInt32(textBox1.Text); i <= Convert.ToInt32(textBox2.Text); i++)
            {webBrowser1.Navigate("http://www.people.md/profile/" + Convert.ToString(i));
            }
}
0
107 / 107 / 9
Регистрация: 02.06.2009
Сообщений: 578
03.06.2009, 14:06 6
У вас когда документ загрузится, начинается прогон страниц без остановки. поэтому и переходит к последней. объявите вне процедуры переменную:

public int mk;

затем просто организуйте вот так:

C#
1
2
3
4
5
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
webBrowser1.Navigate("http://www.people.md/profile/" + Convert.ToString(mk));
mk++;
}
Да, кстати, не забудьте инициализировать переменную mk, а код тогда модифицируется так:

C#
1
2
3
4
5
6
7
8
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (mk<=Convert.ToInt32(textBox2.Text))
{
webBrowser1.Navigate("http://www.people.md/profile/" + Convert.ToString(i));
mk++;
}
}
0
1 / 1 / 0
Регистрация: 31.10.2008
Сообщений: 21
03.06.2009, 14:24  [ТС] 7
так этот int mk должен чему то равняться..начальному значению заданого диапазона public int mk= Convert.ToInt32(textBox1.Text); ??..как сделать чтоб при повторном нажати кнопки процес останавливался пауза..а затем опять продолжался

Добавлено через 1 минуту 8 секунд
))) ну я так и понял а вот с паузой никак не разберусь
0
107 / 107 / 9
Регистрация: 02.06.2009
Сообщений: 578
03.06.2009, 14:32 8
Цитата Сообщение от graph Посмотреть сообщение
так этот int mk должен чему то равняться..начальному значению заданого диапазона public int mk= Convert.ToInt32(textBox1.Text); ??..
да

Цитата Сообщение от graph Посмотреть сообщение
))) ну я так и понял а вот с паузой никак не разберусь
сделайте временную переменную int tmp;
при нажатии паузы присвойте ей значение mk:
tmp=mk;
а само mk сделайте больше Convert.ToInt32(textBox2.Text); цикл прервется. для продолжения верните mk ее значение:
mk=tmp;
и введите:
webBrowser1.Navigate("http://www.people.md/profile/" + Convert.ToString(mk));

для проверки, что должна делать кнопка - пауза или продолжение - введите глобальную переменную bool и пусть если false - изменить на true и сделать паузу, а если true - изменить на false и продолжить перебор, а глобальную bool так:

public bool flag=false;
И объявите ее ВНЕ процедур (но внутри класса);

Много конечно и запутанно, но должно работать... Если я правильно понял назначение программы...
1
1 / 1 / 0
Регистрация: 31.10.2008
Сообщений: 21
03.06.2009, 15:06  [ТС] 9
когда я обьявляю public int mk = Convert.ToInt32(textBox1.Text); гдето в классе то получаю ошибку
A field initializer cannot reference the nonstatic field, method, or property 'people.Form1.textBox1'..а если внутри события webBrowser то происходит тоже самое что и с циклом(((
0
107 / 107 / 9
Регистрация: 02.06.2009
Сообщений: 578
03.06.2009, 15:11 10
Цитата Сообщение от graph Посмотреть сообщение
public int mk = Convert.ToInt32(textBox1.Text);
так неверно. Вы объявляете переменную глобального модификатора, а процедуры у вас наверняка все private. Вне процедур, но в классе объявите переменную:

C#
1
2
3
4
5
6
7
public class CLASS{
public int mk;
private void procedure()
{//дальше идут процедуры.
 
}
}
А чтобы присвоить ей значение, сделайте это в любой процедуре, например как только начнете сканить сеть:
C#
1
mk=Convert.ToInt32(textBox1.Text);
названия классов и процедур у вас естественно другие будут. Это я схематично написал
0
1 / 1 / 0
Регистрация: 31.10.2008
Сообщений: 21
04.06.2009, 10:52  [ТС] 11
спасибо Veyron все работает.
Есть еще вопрос. Хочу залогиниться на сайте через winform тоесть ввожу логин и пароль в textBoxы в самой програме а не в браузере как это сделать?..
это форма самого сайта но не могу понять как связать её с програмой??
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<form action="/users/login" method="post"><span class="login_caption">логин:</span><br>
<input name="username" value=""
                     type="text" id="login"
                     class="input_el_l"
                     maxlength="30">
<br>
<span class="login_caption">пароль:</span><br>
<input name="password" value=""
                     type="password" id="pass"
                     class="input_el_l"
                     maxlength="30">
<br>
<input id="remember" name="remember" type="checkbox" value="1" /> <label for="remember">Запомнить меня.</label><br />
<input name="commit" type="submit" value="Вход" />
</form>
0
107 / 107 / 9
Регистрация: 02.06.2009
Сообщений: 578
04.06.2009, 11:34 12
Если честно, тут вроде нужно помимо знания C# еще и знание PHP - а я его толком не знаю. Можно попробовать залогинироваться на сайте вручную, потом найти Cookies, ну а затем просто скопировать в папку с программой. А при логинировании копировать Кукис в нужное место. Явный минус этого метода - авторизоваться можно только одной учеткой....
0
1 / 1 / 0
Регистрация: 31.10.2008
Сообщений: 21
04.06.2009, 11:41  [ТС] 13
не кукис это не выход..буду искать.

Добавлено через 3 минуты 2 секунды
а както через url передать можно?
http://www.people.md/?username=логин&password=пасс
0
04.06.2009, 11:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2009, 11:41
Помогаю со студенческими работами здесь

Как проверить, загрузилась страница в WebBrowser или нет?
как проверить загрузилась ли страница в WebBrowser1 или нет. и как поставить Прогресбар на ее...

Когда страница не загружена, показывать div, когда загрузилась, скрыть
Здравствуйте. Встретилась такая проблема: ни один скрипт по скрытию блока при полной загрузке не...

CppWebBrowser: узнать, загрузилась ли страница?
Всем привет.Вы не могли бы подсказать у CppWebBrowser1-&gt;Navigate(); есть метод который определяет...

Как проверить загрузилась ли страница в WebBrowser1
Как проверить загрузилась ли страница в WebBrowser1. Можно ли это сделать через оператор if. Чтоб...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru