启用后如何停止自动点击器?

4ioopgfo  于 2021-07-07  发布在  Java
关注(0)|答案(1)|浏览(936)
public class Main {
    public static boolean Clicking = true; // Clicking is false

    public static void main(String[] args) throws AWTException {
        Robot robot = new Robot();
        if (Clicking)
        while (true) {
            robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
            robot.delay(1000);
            robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
        }
        if(mousePress(InputEvent.ALT_DOWN_MASK == Clicking == true);
            while(true) {
            robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
        robot.delay(1000);
        robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
        break;
    }
}}

我试图使它,所以每当我点击alt的点击停止,但我不知道如何做到这一点,自动舔的工作非常好,但我试图找出一种方法,如何使它停止,一旦我按了一个特定的键

mlmc2os5

mlmc2os51#

这个 Robot 类无法捕获您的键盘输入。即使可以,它也会在当前状态下阻止你的程序。
我已经做了一个非常简单的类来说明你想要什么。如何运行:
从你的编译器中像运行其他程序一样运行这个程序,一个窗口就会打开
单击窗口并按键盘上的“x”。把光标放在窗口上。每当收到来自的生成的单击时,窗口将更改其颜色 Robot (每秒一次)
按空格键停止 Robot 重要提示:the Timer 对象包含 Robot . 这样可以防止主线程被阻塞。该类包含 KeyListener 能够捕获键盘交互的对象。

/* 
 * don't forget to add your package here
 */

import java.awt.AWTException;
import java.awt.Color;
import java.awt.Robot;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.IOException;

import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.Timer;

public class Tester extends JDialog {

    public Tester() throws AWTException {
        this.setSize( 500,  500 );               
        JPanel panel = new JPanel();
        panel.setSize( 500, 500 );
        panel.setBackground( Color.BLACK );
        this.add( panel );        
        this.setVisible( true );
        this.requestFocus();

        Robot robot = new Robot();
        this.addKeyListener( new KeyListener() {
            Timer timer = new Timer(1000, new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
                    panel.setBackground( new Color( getHue(), getHue(), getHue(), 255 ) );
                    robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);                            
                }
              });

            @Override
            public void keyTyped(KeyEvent e) {
                if ( e.getKeyChar() == 'x' ) {
                  timer.setRepeats(true);
                  timer.start();                  
                }

                if ( e.getKeyChar() == ' ' ) {
                    timer.stop();
                }
            }

            @Override
            public void keyPressed(KeyEvent e) {

            }

            @Override
            public void keyReleased(KeyEvent e) {}

        });
    }

    private int getHue() {
        return (int) (Math.random() * 255);
    }

    public static void main( String[] args ) throws AWTException{
        Tester tester = new Tester();
    }
}

它看起来像什么:

相关问题