Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

C# windows forms - <javascript>


Rekomendowane odpowiedzi

Opublikowano

Pomocy.

Jak wywołać funkcje ?

Aby wysłać rycerza na misje potrzeba jest zrealizować skrypt:

<script type="text/javascript">	function chooseMission(missionArt, missionID, missionKarma, el, buyRubies) {
		if (!el.hasClass('disabledSpecialBtn')) {
			document.id('choosenMission').setProperty('value', missionID);
			document.id('missionArt').setProperty('value', missionArt);
			document.id('missionKarma').setProperty('value', missionKarma);
			document.id('buyRubies').setProperty('value', buyRubies ? buyRubies : 0);
			document.id('formChooseMission').submit();
		}
	}
</script>

Próbowałem w taki sposób ale nic mi to nie dało:

 

string  missionID = "DragonLair", missionArt = "small", missionKarma = "Evil", buyRubies = "1";


                
                
                webBrowser3.DocumentText = @"<html><head></head><body>
                <script type='text/javascript'>
                    function chooseMission(missionArt, missionID, missionKarma, el, buyRubies) {
		if (!el.hasClass('disabledSpecialBtn')) {
			document.id('choosenMission').setProperty('value', missionID);
			document.id('missionArt').setProperty('value', missionArt);
			document.id('missionKarma').setProperty('value', missionKarma);
			document.id('buyRubies').setProperty('value', buyRubies ? buyRubies : 0);
			document.id('formChooseMission').submit();
		}
	}
                </script></body></html>
                ";

                
                Object[] objArray = new Object[4];
                objArray[0] = missionID;
                objArray[1] = missionArt;
                objArray[2] = missionKarma;
                objArray[3] = buyRubies;
                webBrowser3.Document.InvokeScript("chooseMission('missionArt','missionID','missionKarma','buyRubies')", objArray);

Gra to battleknight tak dla ułatwienia zadania...

 

EximusXx.gif

Zuloslaw.gif

KozaPL.gif

Opublikowano


 var request = (HttpWebRequest)WebRequest.Create("http://s25.pl.battleknight.gameforge.com/world/location/");

 

            var postData = "chooseMission=DragonLair";

            postData += "&missionArt=small";

            postData += "&missionKarma=Evil";

            postData += "&buyRubies=1";

            var data = Encoding.ASCII.GetBytes(postData);

 

            request.Method = "POST";

            request.ContentType = "application/x-www-form-urlencoded";

            request.ContentLength = data.Length;

 

            using (var stream = request.GetRequestStream())

            {

                stream.Write(data, 0, data.Length);

            }

 

            var response = (HttpWebResponse)request.GetResponse();

 

            var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

Opublikowano

Zalezy w jaki sposób jesteś zalogowany, czy poprzez przeglądarkę, czy poprzez requesty. Jezeli przez webbrowser to musisz sie podpiac pod "wininet.dll" zeby wyciągnąć z niej ciasteczka 

Opublikowano

Loguje sie przez webbrowsera linkiem logujacym i potem chcialbym wykonac skrypt.

EximusXx.gif

Zuloslaw.gif

KozaPL.gif

Opublikowano
    webBrowser1.DocumentText = "<html><body><span id='span'>abc</span><script>function zmienkolor() { document.getElementById('span').style.color = 'red'; }</script></body></html>";
 
            webBrowser1.Document.InvokeScript("zmienkolor");
       

Przede wszystkim naucz się czytać dokumentację, bo pierwszy argument to nazwa funkcji, drugi, opcjonalny, to argumenty.

Opublikowano

Sprawdź czy działa, w linku zamień na swój świat na jakim grasz 

private void button1_Click(object sender, EventArgs e)
        {
            Uri uri = new Uri("http://s25.pl.battleknight.gameforge.com/world/location/");
            var request = (HttpWebRequest)WebRequest.Create(uri);
            request.CookieContainer = GetUriCookieContainer(uri);
            var postData = "chooseMission=DragonLair";
            postData += "&missionArt=small";
            postData += "&missionKarma=Evil";
            postData += "&buyRubies=1";
            var data = Encoding.ASCII.GetBytes(postData);
 
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = data.Length;
 
            using (var stream = request.GetRequestStream())
            {
                stream.Write(data, 0, data.Length);
            }
 
            var response = (HttpWebResponse)request.GetResponse();
 
            var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
        }
 
        [DllImport("wininet.dll", SetLastError = true)]
        public static extern bool InternetGetCookieEx(string url, string cookieName, StringBuilder cookieData, ref int size, Int32 dwFlags, IntPtr lpReserved);
        private const Int32 InternetCookieHttponly = 0x2000;
        /// <summary>
        /// Gets the URI cookie container.
        /// </summary>
        /// <param name="uri">The URI.</param>
        /// <returns></returns>
        public static CookieContainer GetUriCookieContainer(Uri uri)
        {
            CookieContainer cookies = null;
            int datasize = 8192 * 16;
            StringBuilder cookieData = new StringBuilder(datasize);
            if (!InternetGetCookieEx(uri.ToString(), null, cookieData, ref datasize, InternetCookieHttponly, IntPtr.Zero))
            {
                if (datasize < 0)
                    return null;
                cookieData = new StringBuilder(datasize);
                if (!InternetGetCookieEx(
                    uri.ToString(),
                    null, cookieData,
                    ref datasize,
                    InternetCookieHttponly,
                    IntPtr.Zero))
                    return null;
            }
            if (cookieData.Length > 0)
            {
                cookies = new CookieContainer();
                cookies.SetCookies(uri, cookieData.ToString().Replace(';', ','));
            }
            return cookies;
        }

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...