ďťż

Ładny brzuch

Mam problem z zalogowaniem się na stronę: heyahklub.pl . Snifując mam takie coś:
http://www.heyahklub.pl/sso2/authenticate.do POST /sso2/authenticate.do HTTP/1.1 Host: www.heyahklub.pl User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: pl,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: [url="http://www.heyahklub.pl/sso2/r_login.do?turl=http%3A%2F%2Fwww.heyahklub.pl%3A80%2Fhk%2Fportal% 2Fproxy%3FparentUrl%3D%2Fhk%2Fportal%2FprivatePortal.do%26myUrl%3D%2Fhk%2Fportal%2FwelcomeFriend.do%26sn% 3DHEYAH.PORTAL&partnerlogin=heyah"]http://www.heyahklub.pl/sso2/r_login.do?tu...tnerlogin=heyah[ /url] Cookie: JSESSIONID=L3cpmyLcGJGZHv1Fpb2nLG0JMs4dX1QLzt2sw2bxy3jxDQlhSVbC!-419379306 Content-Type: application/x-www-form-urlencoded Content-Length: 114 org.apache.struts.taglib.html.TOKEN=e8c9578b837d415f626a847a41a14ce2&login=48TUNUMER&password=TUHASLO& x=47&y=15 HTTP/1.x 302 Moved Temporarily Date: Fri, 11 Jul 2008 13:16:00 GMT Server: Apache Pragma: No-cache Location: [url="http://www.heyahklub.pl:80/hk/portal/proxy?parentUrl=/hk/portal/privatePortal.do&myUrl=/ hk/portal/welcomeFriend.do&sn=HEYAH.PORTAL"]http://www.heyahklub.pl:80/hk/portal/proxy...sn=HEYAH. PORTAL[/url] Expires: Thu, 01 Jan 1970 00:00:00 GMT Info-login: Auth weak Info-redirect: Manualy changed Cache-Control: no-cache,no-store,max-age=0 Content-Length: 0 Keep-Alive: timeout=3, max=255 Connection: Keep-Alive Content-Type: text/vnd.wap.wml Content-Language: pl ---------------------------------------------------------- [url="http://www.heyahklub.pl/hk/portal/proxy?parentUrl=/hk/portal/privatePortal.do&myUrl=/hk/ portal/welcomeFriend.do&sn=HEYAH.PORTAL"]http://www.heyahklub.pl/hk/portal/proxy?pa...sn=HEYAH. PORTAL[/url] GET /hk/portal/proxy?parentUrl=/hk/portal/privatePortal.do&myUrl=/hk/portal/welcomeFriend.do&sn=HEYAH. PORTAL HTTP/1.1 Host: www.heyahklub.pl:80 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: pl,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: [url="http://www.heyahklub.pl/sso2/r_login.do?turl=http%3A%2F%2Fwww.heyahklub.pl%3A80%2Fhk%2Fportal% 2Fproxy%3FparentUrl%3D%2Fhk%2Fportal%2FprivatePortal.do%26myUrl%3D%2Fhk%2Fportal%2FwelcomeFriend.do%26sn% 3DHEYAH.PORTAL&partnerlogin=heyah"]http://www.heyahklub.pl/sso2/r_login.do?tu...tnerlogin=heyah[ /url] Cookie: JSESSIONID=L3cpmyLcGJGZHv1Fpb2nLG0JMs4dX1QLzt2sw2bxy3jxDQlhSVbC!-419379306 HTTP/1.x 200 OK Date: Fri, 11 Jul 2008 13:16:01 GMT Server: Apache Content-Length: 220 Keep-Alive: timeout=3, max=254 Connection: Keep-Alive Content-Type: text/html; charset=ISO-8859-2 Content-Language: pl
I w Delphi wymociłem coś takiego:
procedure TForm1.Button1Click(Sender: TObject); var Input, OutPut : TStringStream; begin input:=tstringstream.Create(''); output:=tstringstream.Create(''); try Input.WriteString(Format('login=%s&passwor=%s&x=47&y=15', [edit1.Text, edit2.Text])); IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.0; pl-PL; rv:1.7.6) Gecko/20050226 Firefox/1.0.1'; IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded'; IdHTTP1.HandleRedirects:=True; IdHTTP1.Post('http://www.heyahklub.pl/sso2/r_login.do?turl=http%3A%2F%2Fwww.heyahklub.pl% 3A80%2Fhk%2Fportal%2Fproxy%3FparentUrl%3D%2Fhk%2Fportal%2FprivatePortal.do%26myUrl%3D%2Fhk%2Fportal%2FwelcomeFriend. do%26sn%3DHEYAH.PORTAL&partnerlogin=heyah', Input, Output); IdHTTP1.Connect; if output.datastring <>'' then begin Memo1.Text:=output.datastring; end; finally Input.Free; Output.Free; end; end;
Co robię źle, że to mi nie chodzi? Wiem, że pewnie jakieś cookie trzeba (czy coś takiego :P), ale niestety nie znam się na tym :(. Teraz wyskakuje mi błąd "Already connected". Pomoże ktoś? Naprawdę nie znam się na tym i nie wiem od czego zacząć :( Chcę po prostu zalogować się na ten serwis, a kod źródłowy strony po logowaniu wyświetlić w komponencie Memo. Bardzo proszę po pomoc...



Already connected oznacza ze juz jestes polączony. gdzies łączysz sie dwa razy ;p


Already connected oznacza ze juz jestes polączony. gdzies łączysz sie dwa razy ;p
Teraz już wiem :) Niepotrzebnie dałem:
IdHTTP1.Connect;
No, ale nadal nie działa :( Wyświetla mi źródło strony z logowaniem (czyli nic nowego...). Pomoże ktoś? :(

1. Przede wszystkim patrzysz w kod strony, a nie w nagłówki.

<form name="login.form" method="post" action="/sso2/authenticate.do">
To oznacza, że formularz ma zostać wysłany pod adres http://www.heyahklub...authenticate.do - Ty wpisałeś coś innego. Adres pod który kierowane jest zapytanie jest na początku (też korzystam z Live HTTP Headers ;)).

2. Zanim zaczniesz się bawić w Delphi, napisz formularz w HTMLu, którym będziesz mógł się zalogować na stronę. A jak to zrobić? Po prostu kopiujesz cały formularz ze strony do swojego pliku, wywalasz wszystko poza inputami, a do "action" dodajesz główny adres strony:

<form name="login.form" method="post" action="http://www.heyahklub.pl/sso2/authenticate.do">
Wpisujesz dane i sprawdzasz czy działa.

3. Jeśli działa, to odpalasz Delphi. Zanim zaczniesz się bawić wysyłanie formularzy, pobierz po prostu tą stronę :)

4. Jeśli zadziała, to bierzesz się za formularze. Zapytanie wysyłasz pod adres, który masz w action. Dane w POST są w identycznej formie jak w przypadku GET tylko, że nie są dodawane do adresu, ale zapisywane w nagłówku. Teraz jest odpowiedni moment, żeby spojrzeć do nagłówka. Widzimy takie coś:

org.apache.struts.taglib.html.TOKEN=e8c9578b837d415f626a847a41a14ce2&login=48TUNUMER&password=TUHASLO& x=47&y=15

Mamy nasz login, hasło oraz kilka innych parametrów, który wyciągasz z wcześniej odebranej strony (tej bez formularza) - zwykle nie jest to konieczne. Sprawdź w HTMLu czy formularz przechodzi tylko z loginem i hasłem. Musisz uzupełnić Content-Length - długość całego stringa (tego z loginem i hasłem), ale bez zera na końcu.

To tyle - w Delphi dawno nie pisałem. Mogę Ci dać gotowy kod do odbierania stron w C#. I szukaj tutoriali na temat socketów czy kompentów HTTP w Delphi w sieci.
Użytkownik Kozack edytował ten post 11 lipiec 2008, 19:12



1. Przede wszystkim patrzysz w kod strony, a nie w nagłówki.

<form name="login.form" method="post" action="/sso2/authenticate.do">
To oznacza, że formularz ma zostać wysłany pod adres http://www.heyahklub...authenticate.do - Ty wpisałeś coś innego. Adres pod który kierowane jest zapytanie jest na początku (też korzystam z Live HTTP Headers ;)).

2. Zanim zaczniesz się bawić w Delphi, napisz formularz w HTMLu, którym będziesz mógł się zalogować na stronę. A jak to zrobić? Po prostu kopiujesz cały formularz ze strony do swojego pliku, wywalasz wszystko poza inputami, a do "action" dodajesz główny adres strony:

<form name="login.form" method="post" action="http://www.heyahklub.pl/sso2/authenticate.do">
Wpisujesz dane i sprawdzasz czy działa.

3. Jeśli działa, to odpalasz Delphi. Zanim zaczniesz się bawić wysyłanie formularzy, pobierz po prostu tą stronę :)

4. Jeśli zadziała, to bierzesz się za formularze. Zapytanie wysyłasz pod adres, który masz w action. Dane w POST są w identycznej formie jak w przypadku GET tylko, że nie są dodawane do adresu, ale zapisywane w nagłówku. Teraz jest odpowiedni moment, żeby spojrzeć do nagłówka. Widzimy takie coś:

org.apache.struts.taglib.html.TOKEN=e8c9578b837d415f626a847a41a14ce2&login=48TUNUMER&password=TUHASLO& x=47&y=15

Mamy nasz login, hasło oraz kilka innych parametrów, który wyciągasz z wcześniej odebranej strony (tej bez formularza) - zwykle nie jest to konieczne. Sprawdź w HTMLu czy formularz przechodzi tylko z loginem i hasłem. Musisz uzupełnić Content-Length - długość całego stringa (tego z loginem i hasłem), ale bez zera na końcu.

To tyle - w Delphi dawno nie pisałem. Mogę Ci dać gotowy kod do odbierania stron w C#. I szukaj tutoriali na temat socketów czy kompentów HTTP w Delphi w sieci.

Wielkie dzięki :) No więc zrobiłem tak jak pisałeś - tą stronę i działa :). No więc teraz Delphi... Zmieniłem kod na:
procedure TForm1.Button1Click(Sender: TObject); var Input, OutPut : TStringStream; begin input:=tstringstream.Create(''); output:=tstringstream.Create(''); try Application.ProcessMessages; Input.WriteString(Format('org.apache.struts.taglib.html.TOKEN=e8c9578b837d415f626a847a41a14ce2& login=%s&passwor=%s&x=47&y=15', [edit1.Text, edit2.Text])); IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15'; IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded'; IdHTTP1.HandleRedirects:=True; IdHTTP1.Post('http://www.heyahklub.pl/sso2/authenticate.do', Input, Output); if output.datastring <>'' then begin Memo1.Text:=output.datastring; end; finally Input.Free; Output.Free; end; end;
Ale wyskakuje błąd "HTTP1.1 404 Not Found." :(
Zmieniłem więc jedną linijkę:
Input.WriteString(Format('oorg.apache.struts.taglib.html.TOKEN=e8c9578b837d415f626a847a41a14ce2& login=48TUNUMER&password=TUHASLO&x=47&y=15', []));
Oczywiście zamiast TUNUMER oraz TUHASLO dałem swoje dane ;) No i wyskakuje błąd "HTTP/1.1 500 Internal Server Error.". Co teraz źle? :( Chyba wszystko dobrze wpisałem (nie wiem jeszcze jak z tym TOKENEM - czy jest zmienny czy nie...) :( Co teraz robić?

Edit:
Już wiem dlaczego taki błąd. Ponieważ za każdym razem jest inny token... Tylko jak go pobrać i wprowadzić? :(

Przepraszam, że post pod postem.
No więc chyba poradziłem już sobie. Trzeba było chyba dać "Get" i już szło... Taki oto kod:
procedure TForm1.Button1Click(Sender: TObject); var Input, OutPut : TStringStream; MyStringList : TStringList; begin input:=tstringstream.Create(''); output:=tstringstream.Create(''); try Application.ProcessMessages; Input.WriteString(Format('&login=48'+numer.Text+'&password='+haslo.Text+' &x=47&y=15', [])); IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15'; IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded'; IdHTTP1.HandleRedirects:=True; IdHTTP1.Get('http://www.heyahklub.pl/hk/msg/user/heyah/welcome.do'); IdHTTP1.Post('http://www.heyahklub.pl/sso2/authenticate.do', Input, Output); MyStringList := TStringList.Create; MyStringList.Add(output.DataString); MyStringList.SaveToFile('strona.html'); WebBrowser1.Navigate(GetCurrentDir + '/strona.html'); DeleteFile('strona.html'); if output.datastring <>'' then begin Memo1.Text:=output.datastring; end; finally Input.Free; Output.Free; end; end;
Tylko teraz pojawia się problem :( Muszę za pomocą przycisku coś wysłać (dokładnie to sms ;]). I snifując Live HTTP Headers mam takie coś:
http://www.heyahklub.pl/hk/msg/user/heyah/sms.do POST /hk/msg/user/heyah/sms.do HTTP/1.1 Host: www.heyahklub.pl User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: pl,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: close Content-Type: multipart/form-data; boundary=aAbB0R6Tbf Referer: [url="http://www.heyahklub.pl/hk/msg/user/heyah/sms.do"]http://www.heyahklub.pl/hk/msg/user/heyah/ sms.do[/url] Content-Length: 1876 Cookie: __utma=138185129.1621727901.1215806411.1215806411.1215806411.1; __utmb=138185129; __utmc=138185129; __utmz=138185129.1215806411.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); JSESSIONID=L38XTZ7PQ7W2mmwcdQSZv2RWhRRXxfWscXCJPR7LQjmylkjq4zd4!1245738827 Pragma: no-cache Cache-Control: no-cache --aAbB0R6Tbf Content-Disposition: form-data; name="org.apache.struts.taglib.html.TOKEN" 9bf459b16b452a4d14a389820a4a8cad --aAbB0R6Tbf Content-Disposition: form-data; name="xmethod" --aAbB0R6Tbf Content-Disposition: form-data; name="tab" top --aAbB0R6Tbf Content-Disposition: form-data; name="send.x" send --aAbB0R6Tbf Content-Disposition: form-data; name="send" send --aAbB0R6Tbf Content-Disposition: form-data; name="top.calendar.hour" 22 --aAbB0R6Tbf Content-Disposition: form-data; name="top.calendar.minute" 10 --aAbB0R6Tbf Content-Disposition: form-data; name="top.calendar.day" 11 --aAbB0R6Tbf Content-Disposition: form-data; name="top.calendar.month" 6 --aAbB0R6Tbf Content-Disposition: form-data; name="top.calendar.year" 2008 --aAbB0R6Tbf Content-Disposition: form-data; name="top.calendar.cycle" 0 --aAbB0R6Tbf Content-Disposition: form-data; name="top.calendar.empty" true --aAbB0R6Tbf Content-Disposition: form-data; name="top.calendar.timeout" 1218398633516 --aAbB0R6Tbf Content-Disposition: form-data; name="top.calendar.nighthours" n --aAbB0R6Tbf Content-Disposition: form-data; name="top.phoneReceiver" TU NUMER TELEFONU --aAbB0R6Tbf Content-Disposition: form-data; name="top.text" TUTAJ TRESC SMS --aAbB0R6Tbf Content-Disposition: form-data; name="top.signature" --aAbB0R6Tbf Content-Disposition: form-data; name="cycle" --aAbB0R6Tbf Content-Disposition: form-data; name="date" 11.7.2008 --aAbB0R6Tbf Content-Disposition: form-data; name="time" 22:10 --aAbB0R6Tbf Content-Disposition: form-data; name="top.characterLimit" 1600 --aAbB0R6Tbf Content-Disposition: form-data; name="org.apache.struts.taglib.html.TOKEN" 9bf459b16b452a4d14a389820a4a8cad --aAbB0R6Tbf Content-Disposition: form-data; name="bottom.exact" t --aAbB0R6Tbf-- HTTP/1.x 200 OK Date: Fri, 11 Jul 2008 20:12:36 GMT Server: Apache Pragma: no-cache Expires: Mon, 26 Jul 1997 05:00:00 GMT Last-Modified: 11. July 2008 22:12:38 CEST Cache-Control: no-cache, must-revalidate Connection: close Transfer-Encoding: chunked Content-Type: text/html; charset=ISO-8859-2 Content-Language: pl ----------------------------------------------------------
Więc przypuszczam, że trzeba wysłać tylko dane:
--aAbB0R6Tbf Content-Disposition: form-data; name="top.phoneReceiver" TU NUMER TELEFONU --aAbB0R6Tbf Content-Disposition: form-data; name="top.text" TUTAJ TRESC SMS
i nie wiem czy jeszcze godziny... Tylko jak to zrobić? Myślałem nad:
IdHTTP1.Request.ContentType := 'Content-Disposition: form-data; name="top.phoneReceiver"'+#13#10#13#10+'numertel';
Itp. dodawać. Czy to jest dobry sposób? Jak to wykonać?
Użytkownik userup edytował ten post 11 lipiec 2008, 20:43
Content-Type określa rodzaj zawartości, więc nie możesz tam pakować danych, które chcesz przesłać. Poprzednim razem dane ładowałeś przez Input.WriteString, więc teraz zrób tak samo :)

Do nagłówka musisz zapisać to samo co pokazuje Live Http Headers. Musi to być zrobione dokładnie, każdy znak pokazany przez LHH musi zostać uwzględniony również przez Ciebie. Szczegółnie ważne są sekwencje znaków \n\r (albo odwrotnie \r\n\, nie pamiętam dokładnie).

Wynika to z tego, że w nagłówku HTTP te dwie rzeczy są umieszczone w różnych miejscach, mają inne przeznaczenie i po prostu do Content-Type nie zmieściłoby się wszystko :)


Content-Type określa rodzaj zawartości, więc nie możesz tam pakować danych, które chcesz przesłać. Poprzednim razem dane ładowałeś przez Input.WriteString, więc teraz zrób tak samo :)

Do nagłówka musisz zapisać to samo co pokazuje Live Http Headers. Musi to być zrobione dokładnie, każdy znak pokazany przez LHH musi zostać uwzględniony również przez Ciebie. Szczegółnie ważne są sekwencje znaków \n\r (albo odwrotnie \r\n\, nie pamiętam dokładnie).

Wynika to z tego, że w nagłówku HTTP te dwie rzeczy są umieszczone w różnych miejscach, mają inne przeznaczenie i po prostu do Content-Type nie zmieściłoby się wszystko :)

No, ale wcześniej wysyłałem to w "post", a teraz to tak samo? Czyli mam dać coś takiego:
Input.Free; Output.Free; input:=tstringstream.Create(''); output:=tstringstream.Create(''); Application.ProcessMessages; Input.WriteString(Format('Content-Disposition: form-data; name="top.phoneReceiver"'+#13#10#13#10+'numertel', [])); IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15'; IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded'; IdHTTP1.HandleRedirects:=True; IdHTTP1.Get('http://www.heyahklub.pl/hk/msg/user/heyah/welcome.do'); IdHTTP1.Post('http://www.heyahklub.pl/hk/msg/user/heyah/sms.do', Input, Output);
?? Mi się wydaje, że coś źle robię :(

Mi się wydaje, że ciagle wysyłasz dane pod zły adres. Podałem Ci go na początku.

Dobrze, że przesyłasz dane przez POST, zobacz tu:

http://forum.unit1.p...opic=...3&st=0&


Mi się wydaje, że ciagle wysyłasz dane pod zły adres. Podałem Ci go na początku.

Dobrze, że przesyłasz dane przez POST, zobacz tu:

http://forum.unit1.p...opic=...3&st=0&

Nie, adres chyba dobry :P Bo już się zalogowałem, tylko teraz chcę coś zrobić po zalogowaniu ;) Tylko nie wiem jak... :( A nie wiesz jak można wyświetlić stronę w jakimś komponencie? Bo mam kod:
MyStringList := TStringList.Create; MyStringList.Add(output.DataString); MyStringList.SaveToFile('strona.html'); WebBrowser1.Navigate(GetCurrentDir + '/strona.html'); DeleteFile('strona.html'); if output.datastring <>'' then begin Memo1.Text:=output.datastring;
No i działa, stronę zapisze, wczyta. Tylko, że gdy kliknę na przycisk to program się zawiesi (bo strona jest na komputerze, a nie jako by była "w internecie" i wszystkie linki padają...). Dlatego mam pytanie, czy można wyświetlić stronę normalnie na WebBrowser'ze? Czy jakimś innym komponencie? Czy trzeba zapisać najpierw na dysk, potem zmieniać linki i wtedy wyświetlić? Nie ma jakieś innej przeglądarki, tylko ta oparta na IE? :P

Masz rację. Pomyliłem posty ;)

Skoro otwierasz stronę w WebBrowserze, to po kliknięciu w odsyłacz w powinna się otworzyć inna strona. To na pewno nie jest powodem zawieszania się programu. Sam WebBrowse dobrze działa? Ładuje poprawnie strony z netu?
Użytkownik Kozack edytował ten post 12 lipiec 2008, 17:22

Masz rację. Pomyliłem posty ;)

Skoro otwierasz stronę w WebBrowserze, to po kliknięciu w odsyłacz w powinna się otworzyć inna strona. To na pewno nie jest powodem zawieszania się programu. Sam WebBrowse dobrze działa? Ładuje poprawnie strony z netu?

Nie no stronę wyświetla, tylko nie wyśle potem (bo chodzi mi o wysłanie sms'a :P). Bo wiesz, jak zapisze stronę to np. jest link "link.php", a nie "http://www.adreserwisu.pl/link.php". O to mi chodzi ;)
Użytkownik userup edytował ten post 12 lipiec 2008, 18:10
Teraz zadam Ci pytanie, które powinien zadać na samym początku. Po co bawisz się w ręczne przetwarzanie stron, skoro masz WebBrowsera? Nie pisałem dawno w Delphi, więc nie wiem czy WebBrowser albo inny komponent daje dostęp do zawartości swoich stron lub umożliwia jej modyfikację? Jeśli tak, to mógłbyś otworzyć stronę w WebBrowserze, a potem wypełnić pola formularza i wysłać go.

Nie cytuj moich wypowiedzi. Zwłaszcza, że odpowiadasz zaraz pod moim postem. Po prostu odpisz, bo zrobi się z tego tasiemiec na kilkanaście ekranów ;)

EDIT:

Znalazłem takie coś http://forum.pcforma...d.php?tid=93938

Możesz załadować stronę, wypełnić pola formularza, a potem go wysłać.
Użytkownik Kozack edytował ten post 12 lipiec 2008, 18:40
Tylko, że tam nic nie ma... Tylko o scrollbaru :( Ale to akurat już znalazłem :P Wiem, że jest właściwość w WebBrowser'ze "OnDocumentComplete", tylko teraz jest problem... Bo stronę wczyta i ok, tylko, że ja mam stronę, na której jest przycisk ;) I chciałbym, aby po kliknięciu na ten przycisk wtedy wykonał się OnDocumentComplete i np. zamknął formę. Nie wiem jak to wytłumaczyć :P Że najpierw mi wczyta stronę i za pierwszym razem nie wykonuje OnDocumentComplete, ale po kliknięciu na przycisk na stronie, wtedy gdy załaduje się to żeby wtedy wykonał OnDocumentComplete. Da się tak zrobić?

Podałem tamten link, bo chodziło o sam sposób dobierania się do elementów strony (np. styli).

Wiem, że chcesz wysyłać SMSy, więc podaj konkretny przykład. Nie rozumiem do końca co i kiedy ma się wykonywać.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •