Spustenie scriptu z programu

Programovacie jazyky, rady, poradňa...
Juri1990
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 365
Registrovaný: 25 jan 2006, 10:05
Bydlisko: Bratislava
Kontaktovať používateľa:

Spustenie scriptu z programu

Príspevok od používateľa Juri1990 »

Zdravím, mám taký drobný problém, chcel by som pomocou programu(c#) reštartovať router, ale neviem ako spustiť nejaký script, ktorý je na webstránke skrz program.
Skúšal som robiť nejakého bota pomocou webBrowser, ale nie je to ideálne, najradšej by som to mal iba ako nejaký request bez grafiky, aby som to mohol spraviť ako services.

Tú je sript, ktorý je volaný tlačidlom:

Kód: Vybrať všetko

function restart1()
{
	var f = document.forms[0];
	if(confirm(REBOOT.CONFIRM))
	{
		parent.location.href = "restartdone.asp";
    	subForm(f,'apply.cgi','reboot',"mtenrestart.asp");
	}
}
Potom tu sú ostatné, ktoré na seba nadväzujú, mi príde, že by stačilo správe spustiť ten posledný, respektíve jeho obsah dať do requestu:

Kód: Vybrať všetko

/* crate a apply string and use it to submit the settings
 * f1 : name of form
 * a : action 
 * d : service command(CMD)
 * g : goto the url after submit
 */
function subForm(f1,a,d,g)
{
	var msg=genForm('OUT',a,d,g);
//you can remove the ref to see the apply string before submit	
/*DEMO*/
//	if (!confirm(msg)) return;
/*END_DEMO*/

	var newElem = document.createElement("div");
	newElem.innerHTML = msg ;
	f1.parentNode.appendChild(newElem);
	f=document.OUT;
	f.submit();
}

function genForm(n,a,d,g)
{
	frmHead(n,a,d,g);
	var sub=0;
	var tmp;
    for (var i=0;i<CA.length;i++)
	{
		if (CA[i].v!=CA[i].o)
		{
			tmp = CA[i].v + "";
			if (tmp.indexOf("&")>=0) {
				tmp = tmp.replace(/&/g,"&");
			}
			frmAdd("SET"+sub,String(CA[i].i)+"="+tmp);
			sub++;
		}
	}
	if (frmExtraElm.length)
		OUTF+=frmExtraElm;
	frmExtraElm=''; //reset
	frmEnd();
	return OUTF;
}

function frmHead(na,to,cmd,go)
{
	OUTF="<FORM name="+na+" action="+to+" method=POST>\n"+
	"<INPUT type=hidden name=CMD value="+cmd+">\n"+
	"<INPUT type=hidden name=GO value="+go+">\n";
}
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Spustenie scriptu z programu

Príspevok od používateľa harrison314 »

Ked to chces velmi cez komponentu webbrowser tak
http://notions.okuda.ca/2009/06/11/call ... ol-from-c/
http://stackoverflow.com/questions/1437 ... er-control

Ja by som to riesil, tak ze si cez Wiredshark alebo chrome odchytis co sa posiela na router ako prikaz na restart a potom to posielal cez tredu HttpWebrequest, alebo skokety.
Juri1990
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 365
Registrovaný: 25 jan 2006, 10:05
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Spustenie scriptu z programu

Príspevok od používateľa Juri1990 »

No práve že, cez weBrowser to nechcem a chcel som to cez request...to odchytenie ma nenapadlo, ale neviem ako na to v chrome.
S wireshark som už robil, tak skúsim ten.

Ale keď pozerám tie scripty, tak to metódou post posiela na "apply.cgi" name=CMD value="reboot" a name=GO value="mtenrestart.asp".

Edit: tak som to zachytil a bolo tam "CMD=reboot&GO=mtenrestart.asp", teraz už len zistiť ako spraviť ten request v c#.
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Spustenie scriptu z programu

Príspevok od používateľa harrison314 »

AK ide o metodu GET tak len to pripises do linku, ak POST http://stackoverflow.com/questions/3279 ... webrequest
Juri1990
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 365
Registrovaný: 25 jan 2006, 10:05
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Spustenie scriptu z programu

Príspevok od používateľa Juri1990 »

Vďaka za tvoj čas a rady, už to beží. Som použil toto riešenie http://stackoverflow.com/questions/4015 ... -with-post
Napísať odpoveď