0

これはログインページです: http://ts14.travian.com.sa/nachrichten.php

プログラムにユーザー名とパスワードをテキストボックスと単純な貧弱なブラウザーから投稿させたい:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            webBrowser1.Navigate(textBox1.Text);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.Navigate("http://ts14.travian.com.sa");
            textBox1.Text = "متصفح خاص بترافيان";
        }

        private void button5_Click(object sender, EventArgs e)
        {
            webBrowser1.GoBack();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            webBrowser1.GoForward();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            webBrowser1.Navigate(label1.Text);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            webBrowser1.Refresh();
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void button6_Click(object sender, EventArgs e)
        {
            webBrowser1.Navigate("http://ts14.travian.com.sa/logout.php");
        }

        private void button7_Click(object sender, EventArgs e)
        {
            webBrowser1.Navigate(textBox2.Text);

        }

        private void closeToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void tabPage2_Click(object sender, EventArgs e)
        {

        }
    }
}

ブラウザをゲームにログインさせるにはどうすればよいですか?

4

3 に答える 3

0

thx man HtmlelementIdを検出し、その値を次のように変更することでそれを行う方法を見つけました

{

                 HtmlElement ele = webBrowser1.Document.GetElementById("usernameID"); if (ele != null)
            ele.InnerText = "username"; 

        ele = webBrowser1.Document.GetElementById("passwordID"); if (ele != null)
            ele.InnerText = "password";

        ele = webBrowser1.Document.GetElementById("goButtonID"); if (ele != null)
            ele.InvokeMember("click");

正常に動作しました

于 2012-09-28T00:39:00.337 に答える
0

http://www.weedi.net/vb/f-127/29251/に POST HTTP リクエストを実行し、必要なフォーム変数を渡す必要があります。ログイン要求がどのように処理されるかを理解する必要があります。次のようなことを試すことができます:

 StreamWriter Sw = null;
        StreamReader Sr = null;
        string sUsername = "aUsername";
        string sPassword = "aValidPass";

        string data = string.Format("name={0}&password={1}", sUsername, sPassword);

        HttpWebRequest Req = (HttpWebRequest)WebRequest.Create("http://ts14.travian.com.sa/dorf1.php");
        Req.Method = "POST";
        Req.KeepAlive = true;



                                                                    .
于 2015-05-15T10:33:25.913 に答える
0

http://ts14.travian.com.sa/dorf1.phpに対して POST HTTP リクエストを実行し、必要なフォーム変数を渡す必要があります。ログイン要求がどのように処理されるかを理解する必要があります。次のようなことを試すことができます:

            StreamWriter Sw = null;
            StreamReader Sr = null;
            string sUsername = "aUsername";
            string sPassword = "aValidPass";

            string data = string.Format("name={0}&password={1}", sUsername, sPassword);

            HttpWebRequest Req = (HttpWebRequest)WebRequest.Create("http://ts14.travian.com.sa/dorf1.php");
            Req.Method = "POST";
            Req.KeepAlive = true;

            ASCIIEncoding encoding = new ASCIIEncoding();
            byte[] byte1 = encoding.GetBytes(data);
            Req.ContentType = "application/x-www-form-urlencoded";
            Req.ContentLength = byte1.Length;
            Stream newStream = Req.GetRequestStream();
            newStream.Write(byte1, 0, byte1.Length);
            newStream.Close();

            Sr = new StreamReader(((HttpWebResponse)Req.GetResponse()).GetResponseStream());
            sResponse = Sr.ReadToEnd();
            int cookieCount = cookieJar.Count;
            Sr.Close();
            Sw = null;

ログインに成功したら (変数 sResponse を解析して)、ページにリダイレクトするだけです。

ただし、覚えておいてください....セッションは、アプリケーションが実行されているマシン内でのみ有効です。

于 2012-09-27T04:18:05.703 に答える