2012-07-03 34 views

回答

1

收件其中连续地执行使用以下代码剪贴板数据支票

// If a string is on the system clipboard, this method returns it; 
// otherwise it returns null. 
public static String getClipboard() { 
    Transferable t = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null); 

    try { 
     if (t != null && t.isDataFlavorSupported(DataFlavor.stringFlavor)) { 
      String text = (String)t.getTransferData(DataFlavor.stringFlavor); 
      return text; 
     } 
    } catch (UnsupportedFlavorException e) { 
    } catch (IOException e) { 
    } 
    return null; 
} 

// This method writes a string to the system clipboard. 
// otherwise it returns null. 
public static void setClipboard(String str) { 
    StringSelection ss = new StringSelection(str); 
    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null); 
} 

详情线程参阅下面类

java.awt.datatransfer.Clipboard; 
java.awt.datatransfer.ClipboardOwner; 
java.awt.datatransfer.Transferable; 
java.awt.datatransfer.StringSelection; 
java.awt.datatransfer.DataFlavor; 

下面是监听器例如

import java.awt.*; 
import java.awt.datatransfer.*; 

class BoardListener extends Thread implements ClipboardOwner { 
    Clipboard sysClip = Toolkit.getDefaultToolkit().getSystemClipboard(); 

    public void run() { 
    Transferable trans = sysClip.getContents(this); 
    regainOwnership(trans); 
    System.out.println("Listening to board..."); 
    while(true) {} 
    } 

    public void lostOwnership(Clipboard c, Transferable t) { 
    Transferable contents = sysClip.getContents(this); //EXCEPTION 
    processContents(contents); 
    regainOwnership(contents); 
    } 

    void processContents(Transferable t) { 
    System.out.println("Processing: " + t); 
    } 

    void regainOwnership(Transferable t) { 
    sysClip.setContents(t, this); 
    } 

    public static void main(String[] args) { 
    BoardListener b = new BoardListener(); 
    b.start(); 
    } 
} 
+1

我需要弄清楚当用户点击粘贴或按CTRL + V时,当他在他正在使用的文件系统的文件夹 – Wakko

+0

然后,你想做什么。 –

+0

非常感谢那件事 - 这也帮助 – Wakko

0

尝试JNA JNA - Java Native Access是JNI组件的一个包装ntation,我们可以通过键盘钩和鼠标钩来控制键盘和鼠标。

+0

感谢您的链接 - : - 它帮助 – Wakko

+0

@Wakko请upvote如果帮助,以便我可以获得一些声誉,并帮助其他人。 :) – Triguna