gpt4 book ai didi

java - 使用 Ctrl+C 携带存储语句的缓冲区

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

我正在尝试创建一个应用程序,在某个阶段存储由 CTRL+C 复制的所有语句,并将携带当前语句的“缓冲区”操作为特定语句

示例:用户按 CTRL + C 复制“Hello”,如果他在任何文本区域/字段按 CTRL + V ,书面文字将为“Hello”,我希望书面语句为“Test”而不是“Hello”

问题是:如何访问携带复制语句的缓冲区并使用 Java 操作其内容?

最佳答案

  public static void main(String[] args) throws Exception
{
// Get a reference to the clipboard
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();

// Poll once per second for a minute
for (int i = 0; i < 60; i++)
{
// Null is ok, because, according to the javadoc, the parameter is not currently used
Transferable transferable = clipboard.getContents(null);

// Ensure that the current contents can be expressed as a String
if (transferable.isDataFlavorSupported(DataFlavor.stringFlavor))
{
// Get clipboard contents and cast to String
String data = (String) transferable.getTransferData(DataFlavor.stringFlavor);

if (data.equals("Hello"))
{
// Change the contents of the clipboard
StringSelection selection = new StringSelection("Test");
clipboard.setContents(selection, selection);
}
}

// Wait for a second before the next poll
try
{
Thread.sleep(1000);
}
catch (InterruptedException e)
{
// no-op
}
}
}

我添加了轮询以进行一些简单的可测试性/验证。它会每秒检查一次剪贴板,持续一分钟。据我所知,没有办法进行基于事件的通知(除非您正在监听 flavor 变化,而您没有),所以我认为您只能进行轮询。

关于java - 使用 Ctrl+C 携带存储语句的缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10049409/

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