2010-07-08 71 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

相關問題