2010-07-08 73 views
0

这次我有一种有趣而奇怪的要求。我在Facebook上有我的帐户,大家都知道它在玩游戏时非常受欢迎。我遇到的其中一个应用是点击游戏,其中一个人必须在10秒内点击尽可能多的次数。好吧,一位朋友说他在C#中创建了一些.Net代码,可以自动完成点击按钮的过程。这是真的可能还是他在虚张声势?如果是这样,任何人都可以告诉我如何?我个人并没有看到他这样做。但他在我的其他朋友面前提到了这件事。任何指导方针都会有帮助。我花了很多努力在10秒内点击了92次,他说使用一些C#代码,他只是保持一个循环,并点击了1500次。现在我在他面前感觉自己有些低下:p。只是92对他的1500解析C#或java中任何Web浏览器中显示的HTML页面?

感谢提前:)

即使这个代码不起作用。我看不到我的网页在Facebook上做甚至一个单一的点击: -

[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); 
        } 
       } 


      } 

也许这是行不通的,因为鼠标点击发送到OS不是Facebook。

回答

1

在.net中,您可以使用InvokeScript API与WebBrowser控件中的页面脚本进行交互,并通过Document属性与页面DOM进行交互。

+0

你的意思是说这是真的可能吗?黑客在Facebook游戏?这仅仅是一种黑客行为而已? – TCM 2010-07-08 10:29:56

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

谢谢rakuo,你的回答非常丰富。但你能告诉我如何编辑JavaScript?这是Facebook的点击游戏的链接:http://apps.facebook.com/swdrfpaoqdordealf/?ref_6w=f_clicks。当我在萤火虫中看到它有很多的JavaScript。我是否需要全部查看他们发送数据的位置? – TCM 2010-07-08 10:46:43

+0

我不想将应用程序添加到我的Facebook,所以请原谅,我无法帮助您找到您要寻找的JS,具体来说。但是要回答你的问题,是的,那是你必须要做的。最有可能的是,在定时器之后的一个AJAX请求(可以倒计时,无论秒数是多少)。另外,你可以尝试的是在你单击时执行的函数中,而不是执行'counter ++;'或者其他操作,你可以执行'counter = counter^counter;',这会给你指数增长。这可能比打乱AJAX更容易。 – rakuo15 2010-07-08 11:00:09

+0

您的C#方法无法正常工作。请看我编辑的帖子。 – TCM 2010-07-08 12:30:15

相关问题