Funkcja określająca czy załądowano stronę

0

Witam, mam następujący problem.
Robię aplikację desktopową, która wchodzi w przeglądarkę i potrzebuję funkcję, która będzie sprawdzać czy strona jest załadowana, jeśli tak to program "idzie" dalej, a jeśli nie to czeka aż się załaduję.
Na razie mam na siłę (na sztywno) ustawiony czas, po którym wszystko będzie załadowane... ale to jest bez sensu bo czasem strona załaduję się po 100msach a czasem po 3 sekundach...

Jeśli ktoś ma propozycję, albo choć jakieś podpowiedzi to bardzo proszę o pomoc ;)

Pozdrawiam,
LoK

1

Co to znaczy "wchodzi w przeglądarkę"? Wyjaśnij używając co najmniej 15 wyrazów.

0

To znaczy korzysta z webBrowsera, którego mam w mojej aplikacji, konkretnie w jednej z zakładek.
Przykład tego co robię:

        private void button1_Click(object sender, EventArgs e)
        {
            webBrowser1.Document.GetElementById("user").SetAttribute("value", textBox1.Text);
            webBrowser1.Document.GetElementById("password").SetAttribute("value", textBox2.Text);
            webBrowser1.Document.GetElementById("login_button").InvokeMember("click");
        }

Chodzi o to że wyszukuję poprzez użycie GetElementById i jak program będzie od razu wyszukiwał danego elementu ze strony to go nie znajdzie bo nie będzie on jeszcze załadowany, dlatego strona musi się załadować i dopiero szukać dalej.

1

http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser_events.aspx

Przeczytaj (ze słownikiem w ręku jak masz problem z angielskim) opis każdego z tych zdarzeń.

0

Liczyłem na troszkę konkretniejszą odpowiedź, ale dzięki, przeczytam.

#edit:
Jeżeli ktoś ma podobny problem to podaje rozwiązanie na tacy:

 private void wait()
        {
            while (webBrowser1.ReadyState == WebBrowserReadyState.Complete) Application.DoEvents();
        }
1

Nie posłuchałeś mnie i znalazłeś w Internecie głupią metodę kolejnego gościa, który nie potrafi korzystać z dokumentacji.

0

No to powiedz mi dlaczego jest głupia? Co w niej jest gorszego od tego co mogłem znaleźć w linku który mi podałeś ?

1

Każda metoda na sprawdzanie stanu czegoś w pętli jest gorsza od zdarzenia.

0

A czy mógł byś powiedzieć mi jakie zdarzenie jest odpowiedzialne za to czego szukam ?
Przyznaje, że nie przeszukałem tego dokładnie, mógł byś zaoszczędzić mi trochę czasu i podać to zdarzenie ?

A przy okazji, jest jakaś metoda na ściągnięcie adresu przeglądarki, który aktualnie mam wyświetlony w webBrowserze? To znaczy jest na pewno, ale jak się nazywa ta metoda?

2

Czy naprawdę tak trudne jest dla ciebie przeczytanie 15 pierwszych zdań z tabelki, do której link ci wysłałem? Wiesz, że daleko nie zajedziesz z takim podejściem?

To drugie to prawie ta sama sytuacja, tylko musisz poszukać wśród właściwości, a nie zdarzeń.

0

ok dzięki za Twoja "pomoc" choć nie mogę znaleźć tego po nazwach eventów ani ich opisach, a zamiast wchodzić w każdy event i badać przykład + opis to już wolę użyć mojego gorszego sposobu i zaoszczędzić 2 godziny, skoro tak trudno Ci napisać 2 słowa. To jest złośliwość ? Czy aż taka wielka chęć podania mi "wędki" a nie "ryby" ? Nie wiem co tym zyskujesz bo ja tracę czas, a czy Ty mi to podasz (czas 10 sekund) czy sam to znajdę (2 godziny) i tak zapamiętam to już na długi czas, czyli różnicy nie widzę.

3

Czy aż taka wielka chęć podania mi "wędki" a nie "ryby" ?

Dokładnie tak.

W każdym razie, powinieneś wiedzieć, że programista, który nie potrafi przeczytać kilku zdań z dokumentacji (nie, nie trzeba wchodzić do każdego zdarzenia, wystarczy rzucić okiem na ich nazwy i ktoś, kto zna język angielski znajdzie go w ~5-6 sekund) to dupa, a nie programista.

1
lokatylokacz napisał(a)

ok dzięki za Twoja "pomoc" choć nie mogę znaleźć tego po nazwach eventów ani ich opisach, a zamiast wchodzić w każdy event i badać przykład + opis to już wolę użyć mojego gorszego sposobu i zaoszczędzić 2 godziny, skoro tak trudno Ci napisać 2 słowa. To jest złośliwość ? Czy aż taka wielka chęć podania mi "wędki" a nie "ryby" ? Nie wiem co tym zyskujesz bo ja tracę czas, a czy Ty mi to podasz (czas 10 sekund) czy sam to znajdę (2 godziny) i tak zapamiętam to już na długi czas, czyli różnicy nie widzę.

DocumentCompleted Occurs when the WebBrowser control finishes loading a document.

0

Ok wybaczcie, nie wiem jakim cudem to ominąłem, a nawet mam w historii że w to wchodziłem... Wydaje mi się że jedynym wyjaśnieniem jest godzina 4 nad ranem :P

Dzięki za chęci i pomoc doceniam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1