Im Wörterbuch wird ein Roboter "als Maschine zusammengebaut und weist verschiedene Bewegungsfunktionen auf, die denen des Menschen ähnlich sind". Wenn es jedoch nicht nur in der Hardware, sondern auch in der Software eine menschenähnliche Bewegung gibt, handelt es sich auch um einen Roboter.
Lassen Sie uns einen Software-Roboter für diese Aktivität erstellen!
Java AWT Robot
Es gibt verschiedene Plattformen, aber dieses Mal werde ich Java AWT für den Softwareroboter verwenden. Java AWT (Abstract Window Toolkit) ist eine API zum Entwickeln von GUI- oder Windows-basierten Anwendungen in Java. In AWT gibt es eine Roboter-API. Dieser Roboter kann automatisch Funktionen in Native des Betriebssystems ausführen.
Tastendruck:
MyRobot.java
//Drücken Sie Enter
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
Mausbewegung:
MyRobot.java
//Maus ist die Szene X.:350,Y:Gehen Sie zu 400
robot.mouseMove(350,400);
verzögern:
MyRobot.java
//1 Sekunde Verzögerung
robot.delay(1000);
NiseAPI
Zur Vereinfachung habe ich meine eigene API erstellt. "Kostenlos", das über diesen Link gegabelt werden kann: https://github.com/CoralBeef-zz/Nise
Oder teilen Sie den Code hier:
NiseRobot.java
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.event.KeyEvent;
public class NiseRobot extends Robot {
public NiseRobot() throws AWTException {}
public void delayedKeyPress(int keyToPress) {
delayedKeyPress(keyToPress,500);
}
public void delayedKeyPress(int keyToPress, int delay_time) {
delay(delay_time);
keyPress(keyToPress);
keyRelease(keyToPress);
}
public void instantType(String text) {
StringSelection stringSelection = new StringSelection(text);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(stringSelection, stringSelection);
keyPress(KeyEvent.VK_CONTROL);
keyPress(KeyEvent.VK_V);
keyRelease(KeyEvent.VK_V);
keyRelease(KeyEvent.VK_CONTROL);
}
public void waitFor(int delay_in_milliseconds) {
try {
Thread.sleep(delay_in_milliseconds);
} catch(InterruptedException ioe) {}
}
public void mouseGlide(int x1, int y1, int x2, int y2, int t, int n) {
try {
double dx = (x2 - x1) / ((double) n);
double dy = (y2 - y1) / ((double) n);
double dt = t / ((double) n);
for (int step = 1; step <= n; step++) {
Thread.sleep((int) dt);
mouseMove((int) (x1 + dx * step), (int) (y1 + dy * step));
}
} catch (InterruptedException e) {}
}
}
Zum Beispiel bin ich ein Programm, das automatisch auf Twitter posten kann. Versuch es selber.
Nise.start()
String tweet = JOptionPane.showInputDialog(new JFrame("NameFrame"), "What do you want to tweet?");
robot.delayedKeyPress(KeyEvent.VK_WINDOWS);
robot.delayedKeyPress(KeyEvent.VK_C);
robot.delayedKeyPress(KeyEvent.VK_H);
robot.delayedKeyPress(KeyEvent.VK_R);
robot.delayedKeyPress(KeyEvent.VK_O);
robot.delayedKeyPress(KeyEvent.VK_M);
robot.delayedKeyPress(KeyEvent.VK_E);
robot.delayedKeyPress(KeyEvent.VK_ENTER);
robot.mouseGlide(500,500, 600, 60, 8, 1000);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.delayedKeyPress(KeyEvent.VK_H);
robot.delayedKeyPress(KeyEvent.VK_T);
robot.delayedKeyPress(KeyEvent.VK_T);
robot.delayedKeyPress(KeyEvent.VK_P);
robot.delayedKeyPress(KeyEvent.VK_S);
//Colon
robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(KeyEvent.VK_SEMICOLON);
robot.keyRelease(KeyEvent.VK_SEMICOLON);
robot.keyRelease(KeyEvent.VK_SHIFT);
robot.delayedKeyPress(KeyEvent.VK_SLASH);
robot.delayedKeyPress(KeyEvent.VK_SLASH);
robot.delayedKeyPress(KeyEvent.VK_T);
robot.delayedKeyPress(KeyEvent.VK_W);
robot.delayedKeyPress(KeyEvent.VK_I);
robot.delayedKeyPress(KeyEvent.VK_T);
robot.delayedKeyPress(KeyEvent.VK_T);
robot.delayedKeyPress(KeyEvent.VK_E);
robot.delayedKeyPress(KeyEvent.VK_R);
robot.delayedKeyPress(KeyEvent.VK_PERIOD);
robot.delayedKeyPress(KeyEvent.VK_C);
robot.delayedKeyPress(KeyEvent.VK_O);
robot.delayedKeyPress(KeyEvent.VK_M);
robot.delayedKeyPress(KeyEvent.VK_SLASH);
robot.delayedKeyPress(KeyEvent.VK_ENTER);
robot.delayedKeyPress(KeyEvent.VK_ENTER);
robot.delay(3000);
robot.mouseGlide(600,60, 750, 230, 8, 1000);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.instantType(tweet);
robot.mouseGlide(750,230, 1250, 360, 8, 1000);
robot.delay(3000);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
Mit einer so einfachen Funktion ist es eine automatische Aufgabe, die auf dem Betriebssystem basiert, und es gibt viele Möglichkeiten.
Ich freue mich darauf, kreativere Dinge damit zu machen!
Recommended Posts