簡體   English   中英

以編程方式在Firefox中自動執行鼠標移動和點擊

[英]Automating Mouse Movement and Clicks in Firefox programmatically

我正在嘗試在C#中創建一個自動點擊程序,以便更快地完成一些管理任務。 簡而言之,我將使用一個程序(Firefox),並且需要一個程序來自動移動鼠標並單擊我告訴它的任何地方。

目前我有這個代碼,雖然我覺得我離實際的解決方案還很遠。

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;
using System.Runtime.InteropServices;
using System.Drawing;

namespace Clicker
{
    public partial class Form1 : Form
    {

        [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()
        {
            //Call the imported function with the cursor's current position
            Cursor.Position = new Point((int)10, (int)10);

            mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, Cursor.Position.X, Cursor.Position.Y, 0, 0);
        }

        public Form1()
        {
            //InitializeComponent();
        }
    }
}

我希望我的程序在Firefox上運行,一旦加載就立即開始點擊我告訴它的位置。 它需要點擊十三個30x30像素按鈕然后停止,讓我完成任務。

我怎么去做這樣的任務?

編輯:我忘了提到前端是在Flash中。 很奇怪,我知道。 無論哪種方式,這意味着像Selenium這樣的程序將無法用作其跟蹤頁面移動和鏈接點擊。

雖然這不能用C#代碼回答你的問題,但我真的不得不建議你看看AutoIt 它是一種非常簡單的腳本語言,用於創建要重復的已定義任務。 我已經成功地將它用於各種各樣的任務,從反復輸入用於測試Web應用程序的表單數據到在MMO游戲中對抗怪物。

是否需要實際自動化鼠標,或只需按下按鈕? 您可以使用Selenium輕松完成此操作,包括使用為您生成C#代碼的IDE(FireFox插件)記錄您的操作。

要擴展@Chris Marisic的答案,您實際上可以使用AutoItX從C#(或其他語言)中使用AutoIt。 我沒試過這個,但顯然你可以把它編譯成DLL並從你的代碼中調用它,參見http://www.autoitscript.com/forum/index.php?showtopic=39262

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM