gpt4 book ai didi

java - 如何让我的程序写入另一个程序?

转载 作者:太空宇宙 更新时间:2023-11-04 06:20:39 24 4
gpt4 key购买 nike

我正在制作一个宏程序。当 CTRL 模式打开时,程序会在用户单击时注册鼠标坐标。按下“CTRL”时激活 CTRL 模式,再次按下则停用。如果停用,程序会询问“执行操作吗?”如果响应为"is",则程序单击注册的坐标。

如果用户在 CTRL 模式下写了一些东西,我现在正在尝试让程序写入。这可能吗?如果是这样,怎么办?

编辑:我的解释很差,所以我决定添加一个示例。

示例

我激活了 CTRL 模式。然后点击记事本并写下“你好”。然后我停用 CTRL 并运行操作。该程序将单击记事本并写入“hello”。

我认为您不需要这个,但这是代码:

public class Gui extends JFrame {
private JPanel mousePanel;

private JLabel statusBar;
private JLabel keyBar;

public boolean ctrl;

List<Integer> xList = new ArrayList<Integer>();
List<Integer> yList = new ArrayList<Integer>();
List<KeyEvent> charTyped = new ArrayList<KeyEvent>();

public int[] x;
public int[] y;

public Gui() {
super("Program");
mousePanel = new JPanel();
mousePanel.setBackground(Color.WHITE);
add(mousePanel, BorderLayout.CENTER);
statusBar = new JLabel("No events");
keyBar = new JLabel("No key events");
add(keyBar, BorderLayout.NORTH);;
add(statusBar, BorderLayout.SOUTH);

HandlerClass handler = new HandlerClass();
mousePanel.addMouseListener(handler);
mousePanel.addMouseMotionListener(handler);
this.addKeyListener(handler);
}


public void Click(int x, int y) throws AWTException {
Robot bot = new Robot();
bot.mouseMove(x, y);
bot.mousePress(InputEvent.BUTTON1_MASK);
bot.mouseRelease(InputEvent.BUTTON1_MASK);
}

private class HandlerClass implements MouseListener, MouseMotionListener, KeyListener {

//Mouse Listener
public void mouseClicked(MouseEvent event) {
statusBar.setText(String.format("Clicked at %d, %d", event.getX(), event.getY()));
if(ctrl) {
xList.add(MouseInfo.getPointerInfo().getLocation().x);
yList.add(MouseInfo.getPointerInfo().getLocation().y);
}
}

public void mousePressed(MouseEvent event) {
statusBar.setText(String.format("You are pressing the mouse at %d, %d", event.getX(), event.getY()));
}

public void mouseReleased(MouseEvent event) {
statusBar.setText(String.format("Released at %d, %d", event.getX(), event.getY()));
}

public void mouseEntered(MouseEvent event) {
statusBar.setText(String.format("Mouse entered at %d, %d", event.getX(), event.getY()));
mousePanel.setBackground(Color.RED);
}

public void mouseExited(MouseEvent event) {
statusBar.setText(String.format("Mouse exited at %d, %d", event.getX(), event.getY()));
mousePanel.setBackground(Color.WHITE);
}

//Mouse Motion
public void mouseDragged(MouseEvent event) {
statusBar.setText(String.format("Dragging mouse at %d, %d", event.getX(), event.getY()));
}

public void mouseMoved(MouseEvent event) {
statusBar.setText(String.format("Moving mouse at %d, %d", event.getX(), event.getY()));
}

//Key Listener
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == e.VK_CONTROL && !(ctrl)){
keyBar.setText("CTRL ON");
ctrl = true;
}
else if(e.getKeyCode() == e.VK_CONTROL && ctrl) {
keyBar.setText("CTRL OFF");
ctrl = false;
if(JOptionPane.showOptionDialog(null, "Perform actions?", "", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null, null, null) == JOptionPane.YES_OPTION) {
int index = 0;
for(int actionX : xList) {
try {
Click(actionX, yList.get(index));
} catch (AWTException e1) {
e1.printStackTrace();
}
index++;
try {
Thread.sleep(2000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
}

public void keyReleased(KeyEvent e) {

}

public void keyTyped(KeyEvent e) {

}
}
}

最佳答案

看到您的最新编辑后,this is probably what you're looking for .

我删除了帖子中的其他内容,因为我不断收到有关旧内容的评论。

关于java - 如何让我的程序写入另一个程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27453664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com