0


0

C#またはJavaのWebブラウザに表示されるHTMLページを解析しますか?

今回はおかしくて奇妙な要件があります。 私はFacebook上に私のアカウントを持っています、そして、あなたが皆知っているように、それはゲームをするために非常に人気があります。 私が出会ったアプリケーションの1つは、クリックゲームでした。このゲームでは、10秒以内にできるだけ多くの回数クリックする必要があります。 ある友人は、ボタンをクリックするプロセスを自動化するC#で.Netコードを作成したと言いました。 それは本当に可能ですか、それともブラフですか? もしそうなら、誰も私に方法を教えてもらえますか? 私は個人的に彼がそれを見ているのを見たことはありません。 しかし、彼は他の友人の前でこのことを述べています。 任意のガイドラインが役立ちます。 多大な努力を払って、10秒で92回クリックし、C#コードを使用してループを維持し、1500回クリックしたと言いました。 今、私は彼の前で少し劣っていると感じています:p。 彼の1500に対してちょうど92。

前もって感謝します :)

このコードでさえ機能しません。 Facebookでページを1回クリックしただけでも表示されません:-

[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
        static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData,int dwExtraInfo);

        private const int MOUSEEVENTF_LEFTDOWN = 0x02;
        private const int MOUSEEVENTF_LEFTUP = 0x04;
        private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
        private const int MOUSEEVENTF_RIGHTUP = 0x10;


     public void DoMouseClick()
            {

                    int X = Cursor.Position.X;
                    int Y = Cursor.Position.Y;

                   for (int x = 0; x < 1000; x++)
                {
                    for (int y = 0; y < 600; y++)
                    {
                        mouse_event((uint)MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTDOWN, (uint)x, (uint)y, 0, 0);
                    }
                }


            }

おそらく、マウスクリックがFacebookではなくOSに送信されるため、機能しません。

3 Answer


1



1


私はあなたが話していることを見ました、そして、私もそのゲームでばかげた数を持っている人々を知っています。 最も可能性が高いのは、サーバーに戻されるJavaScript呼び出しを操作し、偽の番号を中継することです。

ただし、.Netでマウスクリックをシミュレートすることは可能です。 トリガーするコードは次のとおりです。

[DllImport("user32.dll",CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);

private const int MOUSEEVENTF_LEFTDOWN = 0x02;
private const int MOUSEEVENTF_LEFTUP = 0x04;
private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
private const int MOUSEEVENTF_RIGHTUP = 0x10;

public void DoMouseClick()
{
   int X = Cursor.Position.X;
   int Y = Cursor.Position.Y;
   mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
 }

ご覧のとおり、マウスの現在位置からX位置とY位置を取得しています。ただし、座標がわかっている限り、画面上の任意の場所でクリックをシミュレートできます。

このコードをループで実行し、押したいボタンのX座標とY座標を取得する場合(おそらく、実行後数秒間クリックルーチンを遅らせることにより、マウスをボタンがあります)、あなたがしようとしていることを達成することができます。

ゲームでこれほど多くの人がこれを獲得しているとは思わないことに注意してください。 ほとんどの場合、FireBugまたは同様の開発者ツールを使用してJavaScript呼び出しを編集してから、サーバーに偽のデータを送り返すことができます。


0


Seleniumのようなテストフレームワークは、このような課題に使用できます。