Vyplnenie php formularu pomocou C# – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vyplnenie php formularu pomocou C# – .NET – Fórum – Programujte.comVyplnenie php formularu pomocou C# – .NET – Fórum – Programujte.com

 

dartanan0
Newbie
25. 12. 2010   #1
-
0
-

Zdarvim,
vedel by niekto ako by som mohol dosiahnut to, ze v C# nacitam stranku, a nasledne do urcitych poli pormularu zadam potrebne udaje a nakoniec to aj cele potvrdim?
Dakujem za kazdu pomoc

Nahlásit jako SPAM
IP: 217.119.127.–
yterbium0
Stálý člen
25. 12. 2010   #2
-
0
-

Pokiaľ ten formulár presne poznáš, tak by to nemal byť problém.

Z documentu webbrowsera si načítaš ElementsByTagName("input") a podľa ich názvu si ošetríš , že ktorému akú hodnotu (Value) nastavíš. Následne si invokneš klik odosielajúceho tlačítka...

Resp. jednoduchšie by bolo, ak sa formulár odosiela cez POST pozrieť adresu odoslaného,a rovno tam napísať údaje aké chceš

Nahlásit jako SPAM
IP: 188.167.3.–
dartanan0
Newbie
25. 12. 2010   #3
-
0
-

podarilo sa mi uz formular vyplnit, ale neviem ako to cele odslat.

form vyzera takto

<form method=post action="" name=form onSubmit="return check();">

...
...
<input type=submit value='Submit'>

cize je to metoda POST ako bolo hore spominane

Nahlásit jako SPAM
IP: 217.119.127.–
Mudraon
~ Anonymní uživatel
28 příspěvků
25. 12. 2010   #4
-
0
-

Docela by me to taky zajimalo tohle jak funguje...Jen nevim jak to muze vypadat takze pokud mam formular na strance nakej form tak na nej reaguju pres co ? MOhl by sem prosim nekdo napsat nakou malou ukazku ? Dekuji

Nahlásit jako SPAM
IP: 212.80.64.–
amertak
~ Anonymní uživatel
112 příspěvků
25. 12. 2010   #5
-
0
-

Kdysi jsem na to napsal knihovnu ->

http://dl.dropbox.com/u/10150476/Release.rar


Ukázka práce s ní ->



WebControl _webbrowser = new WebControl();
WebBrowser webBrowser1; //novy webbrowser

//Zde ho plácnu na form i s přiřazením k WebControlu
webBrowser1 = _webbrowser.WebBrowser;
webBrowser1.Dock = System.Windows.Forms.DockStyle.Bottom;
webBrowser1.Location = new System.Drawing.Point(0, 30);
webBrowser1.MinimumSize = new System.Drawing.Size(20, 20);
webBrowser1.Name = "webBrowser1";
webBrowser1.Size = new System.Drawing.Size(734, 529);
webBrowser1.TabIndex = 0;
webBrowser1.ScrollBarsEnabled = true;
webBrowser1.Visible = false;

Controls.Add(webBrowser1);

//pote jedu
_webbrowser.Navigate("http://seznam.cz");
_webbrowser.FillInput("q", "co chci hledat"); //dát tam jméno inputu (q)
_webbrowser.ClickButton("Hledej"); //pak bud jeho name nebo jeho value

Nahlásit jako SPAM
IP: 80.251.241.–
amertak0
Návštěvník
25. 12. 2010   #6
-
0
-

K hornímu příkladu by stačilo

_webbrowser.ClickButton("Submit");

Nahlásit jako SPAM
IP: 80.251.241.–
Mudraon
~ Anonymní uživatel
28 příspěvků
26. 12. 2010   #7
-
0
-

to amertak: me by spis zajimalo co je v ty knihovne ... Jde mi o to zistit jak to funguje a ne knihovnu :-D to si muzu pak naspat sam klidne...

Nahlásit jako SPAM
IP: 89.190.90.–
dartanan0
Newbie
26. 12. 2010   #8
-
0
-

tiez by som rad vedel ako je to poriesene

Nahlásit jako SPAM
IP: 217.119.127.–
amertak0
Návštěvník
26. 12. 2010   #9
-
0
-

Zde je zdroják

http://paste2.org/p/1163243


budete potřebovat ještě



using SHDocVw;
using mshtml;
using System.Runtime.InteropServices;


knihovny zde
http://dl.dropbox.com/u/10150476/dlls.rar


Jinak tu knihovnu jsem psal dávno, jde to i jednodušeji :)

Nahlásit jako SPAM
IP: 80.251.241.–
Mudraon
~ Anonymní uživatel
28 příspěvků
27. 12. 2010   #10
-
0
-

A neslo by to trochu zjednodusit do par radku ? (stacilo by jenom vyplneni a odeslani) z toho kodu nejsem 2x chytrej spis zmatenej ...

Nahlásit jako SPAM
IP: 89.190.90.–
amertak0
Návštěvník
27. 12. 2010   #11
-
0
-

Tak ještě to jde udělat přes javascript a použít ještě ty funkce s domdocumentu



HtmlDocument htdoc = webBrowser1.Document;
htdoc.GetElementById("inet-field").SetAttribute("value", "co hledam??"); //takhle se vyplnují inputy podle id

webBrowser1.Navigate("javascript:document.getElementById('hledej').click();"); //na tlačítka se kliká jednodušeji přes javascript

Nahlásit jako SPAM
IP: 80.251.241.–
dartanan0
Newbie
27. 12. 2010   #12
-
0
-

A ako si mozem vybrat polozku zo select tagu? viem nacitat konkretne option ale neviem to nastavit

Nahlásit jako SPAM
IP: 217.119.127.–
amertak0
Návštěvník
27. 12. 2010   #13
-
0
-

Zde už se asi neobejdem bez mshtml



HTMLDocument ss = webBrowser1.Document.DomDocument as HTMLDocument;
IHTMLSelectElement ii = ss.getElementById("id tveho selectu") as IHTMLSelectElement;

ii.selectedIndex = 3;

Nahlásit jako SPAM
IP: 80.251.241.–
dartanan0
Newbie
27. 12. 2010   #14
-
0
-

poriesil som to trosku inak s tym indexom ale ide to bezproblemovo :smile1:

Nahlásit jako SPAM
IP: 217.119.127.–
yterbium0
Stálý člen
1. 1. 2011   #15
-
0
-

dartanan napsal:
podarilo sa mi uz formular vyplnit, ale neviem ako to cele odslat.

form vyzera takto

<form method=post action="" name=form onSubmit="return check();">
...
...
<input type=submit value='Submit'>

cize je to metoda POST ako bolo hore spominane



Moj starší kod vypadal takto:
 HtmlElementCollection elements = webBrowser1.Document.GetElementsByTagName("input");

for (int i = 1; i < 4; i++)
{
if (elements[i].Name == "login")
{
elements[i].SetAttribute("value", login);
}
else if (elements[i].Name == "password")
{
elements[i].SetAttribute("value", heslo);
}
else
{//toto nám emuluje click tlačítka
elements[i].InvokeMember("click");
}
}

Nahlásit jako SPAM
IP: 188.167.3.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý