Автоматизация движения мыши и щелчков в Firefox программно - PullRequest
2 голосов
/ 07 октября 2009

Я пытаюсь создать автоматизированную программу-кликер в 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, не будут работать, так как он отслеживает движения страниц и клики по ссылкам.

Ответы [ 4 ]

3 голосов
/ 07 октября 2009

Нужно ли на самом деле автоматизировать мышь или просто нажимать кнопки? Вы можете легко сделать это с Selenium , включая запись ваших действий с помощью IDE (надстройки FireFox), которая создает для вас код C #.

3 голосов
/ 07 октября 2009

Чтобы расширить ответ @Chris Marisic, вы можете использовать AutoIt из C # (или других языков), используя AutoItX. Я не пробовал это, но, очевидно, вы можете скомпилировать его в DLL и вызвать его из вашего кода, см. http://www.autoitscript.com/forum/index.php?showtopic=39262

3 голосов
/ 07 октября 2009

Хотя это не отвечает на ваш вопрос с кодом C #, я действительно рекомендую вам взглянуть на AutoIt . Это очень простой язык сценариев для создания определенных задач, которые будут повторяться. Я успешно использовал его для решения широкого круга задач: от многократного ввода данных формы для тестирования веб-приложений до борьбы с монстрами в MMO-игре.

1 голос
/ 08 октября 2009

Вот простая библиотека, которая довольно изящна:

http://www.codeproject.com/KB/system/globalmousekeyboardlib.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...