gpt4 book ai didi

Java - 从剪贴板监听复制和粘贴

转载 作者:行者123 更新时间:2023-12-05 07:29:00 26 4
gpt4 key购买 nike

( 1 ) 有没有办法监听任何 剪贴板更新(包括 Ctrl+C/X、PrtSc(屏幕截图)和其他程序所做的更改) java ?我试过这个:

    Toolkit.getDefaultToolkit().getSystemClipboard().addFlavorListener(new FlavorListener() {
@Override
public void flavorsChanged(FlavorEvent e) {
System.out.println("Copy detected");
}
});

这可以很好地处理 Ctrl+C 更改,但不会注意到不是用户手动所做的更改,例如通过屏幕截图软件或 PrtSc 按钮。

( 2 ) 有没有办法监听粘贴 操作(Ctrl+V、“粘贴”按钮等)?我想要类似的东西(或者只是具有类似的功能):

// ...
@Override
public void prePaste(PasteEvent e) {
System.out.println("Paste detected");
e.cancel(); // reject the paste (so that user's Ctrl+V pastes nothing)
}
// ...

最佳答案

在将内容粘贴到复合 Material 中时进行捕获的一种方法是添加一个监听器“addKeyListener”。

Java 8

    KeyAdapter keyAdapter = new KeyAdapter()
{
@Override
public void keyPressed(KeyEvent keyEvent)
{
if(((keyEvent.getModifiers() & InputEvent.CTRL_MASK) != 0) && (keyEvent.getKeyCode() == KeyEvent.VK_V))
{
String text = null;

try
{
text = (String) Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);
System.out.println(text);
}
catch(Exception e)
{
e.printStackTrace();
}
keyEvent.consume();
}
}

};

stringTF.addKeyListener(keyAdapter);

对于版本 9 以上的 java 你可以使用下面的条件

            if(((keyEvent.getModifiersEx() & InputEvent.CTRL_DOWN_MASK) != 0) && (keyEvent.getKeyCode() == KeyEvent.VK_V))
{
// Code ....
}

关于Java - 从剪贴板监听复制和粘贴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53042779/

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