[英]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.