Используйте язык сценариев для создания черновика того, что вы хотите сделать.
Вы можете использовать такие программы, как AutoHotKey или AutoIt .Обратите внимание, что у вас есть авто рекордер, который дает вам базовый проект.Вы можете скомпилировать эти сценарии в исполняемые файлы и вызывать их из C # или Java с помощью Shell Execute ( c # ; java (exec)) или запускать как новый процесс ( c # ; java (сборщик процессов)).Последнее предпочтительнее.
Вот пример того, как сопоставить клавишу «пауза» функции, которая выбирает текст на экране, копирует его и вставляет его в другое место, используя AutoHotKey.Shift + left click
используется на фоне, чтобы выделить весь текст.Обратите внимание, что это простейший пример, он не вызывает окно по его указателю и использует фиксированные местоположения (и работает только для одного разрешения).
HotKeySet("{PAUSE}", "getInput")
While 1
Sleep(100)
Wend
Func getInput()
MouseClick("left",272,241,1)
Sleep(100)
MouseClick("left",272,241,1)
Send("{SHIFTDOWN}")
MouseClick("left",272,241,1)
MouseClick("left",529,242,2)
Send("{SHIFTUP}{CTRLDOWN}c{CTRLUP}")
MouseClick("left",656,42,1)
Sleep(100)
MouseClick("left",696,42,1)
Send("{CTRLDOWN}a")
Send("{DELETE}")
Send("{CTRLDOWN}v{CTRLUP}")
MouseClick("left",1178,44,1)
EndFunc
Использование Java.
Java содержит Robot
класс, чтобы сделать это.
Этот класс используется для генерации собственных событий системного ввода для целей автоматизации тестирования, самостоятельных демонстраций и других приложений, где необходимо управление мышью и клавиатурой.Основная цель Robot - облегчить автоматизированное тестирование реализаций платформы Java.
Использование класса для генерации входных событий отличается от публикации событий в очереди событий AWT или компонентов AWT тем, что события генерируются в собственном платформе.входная очередь.Например, Robot.mouseMove фактически будет перемещать курсор мыши, а не просто генерировать события перемещения мыши.
Обратите внимание, что некоторые платформы требуют специальных привилегий или расширений для доступа к низкоуровневому элементу управления вводом.Если текущая конфигурация платформы не допускает управление вводом, при попытке построить объекты робота будет сгенерировано исключение AWTException.Например, системы X-Window выдают исключение, если стандартное расширение XTEST 2.2 не поддерживается (или не включено) X-сервером.
Приложения, которые используют Robot для целей, отличных от самотестирования, должны обрабатывать этиошибки изящно.
Вы можете самостоятельно настроить способ использования робота, но в общем случае:
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
public class Tester {
public static void doLeftMouseClick(Robot r, int x, int y) {
r.mouseMove(x, y);
r.mousePress(InputEvent.BUTTON1_MASK);
r.mouseRelease(InputEvent.BUTTON1_MASK);
}
public static void doLeftMouseClickEvent(Robot r, int x, int y, int nr) {
r.mouseMove(x, y);
if (nr == 1)
r.mousePress(InputEvent.BUTTON1_MASK);
else
r.mouseRelease(InputEvent.BUTTON1_MASK);
}
public static void main(String args[]) throws Exception {
Robot r = new Robot();
doLeftMouseClick(r, 272, 241);
r.delay(1000);
doLeftMouseClick(r, 272, 241);
r.keyPress(KeyEvent.SHIFT_MASK);
doLeftMouseClickEvent(r, 272, 241, 1);
doLeftMouseClickEvent(r, 529, 242, 2);
r.keyRelease(KeyEvent.SHIFT_MASK);
r.keyPress(KeyEvent.CTRL_MASK);
r.keyPress(KeyEvent.VK_C);
r.keyRelease(KeyEvent.CTRL_MASK);
// etc.
}
}
Дополнительные примеры роботов на java2s: ( ссылка )
- Робот: createScreenCapture (Rectangle screenRect)
- Робот: getPixelColor (int x, int y)
- Робот: keyPress (int keycode)
- Робот: keyRelease (int keycode)
- Робот: mouseMove (int x, int y)
- Робот: mousePress (кнопки int)
- Робот: mouseRelease (кнопки int)
- Робот: колесо мыши (int wheelAmt)
Использование C #.
Существует множество решений.Просто google" Автоматизация тестирования c # " или " spy c # ".
MSDN: SendKeys
MSDN: Как: имитировать события мыши и клавиатуры в коде
Вы можете использовать Windows API, но этотребует кропотливой работыВы не хотите этого делать, вы действительно не хотите, но если вы это сделаете, то обязательно проверьте:
Я рекомендую использовать InputSimulator .Пример:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
// add reference to following
using WindowsInput;
using System.Windows.Forms;
using System.Drawing;
namespace ConsoleApplicationTester
{
class Program
{
public static void doLeftMouseClick(int x, int y)
{
Cursor.Position = new System.Drawing.Point(x, y);
InputSimulator.SimulateKeyPress(VirtualKeyCode.LBUTTON);
}
public static void doLeftMouseClickEvent(int x, int y, int nr)
{
Cursor.Position = new Point(x, y);
if(nr==1)
InputSimulator.SimulateKeyDown(VirtualKeyCode.LBUTTON);
else
InputSimulator.SimulateKeyUp(VirtualKeyCode.LBUTTON);
}
static void Main(string[] args){
doLeftMouseClick( 272, 241);
System.Threading.Thread.Sleep(100);
doLeftMouseClick( 272, 241);
InputSimulator.SimulateKeyDown(VirtualKeyCode.MENU);
doLeftMouseClickEvent(272, 241, 1);
doLeftMouseClickEvent(529, 242, 2);
InputSimulator.SimulateKeyUp(VirtualKeyCode.MENU);
InputSimulator.SimulateKeyDown(VirtualKeyCode.CONTROL);
InputSimulator.SimulateKeyUp(VirtualKeyCode.VK_C);
InputSimulator.SimulateKeyUp(VirtualKeyCode.CONTROL);
// etc.
}
}
}