1
我試圖在雙擊它時將任何地方的文字(如MS word,pdf,而不是任何java組件)複製到剪貼板。因此,我使用awt.Robot
將選定的單詞複製到剪貼板後雙擊它。複製後,該單詞將返回。因此,我用兩種方法copy_From_Original
和copy_From_ClipBoard
。從雙擊將文字複製到剪貼板
問題是當我複製單詞時,它會顯示上一個單詞剪貼板內容不是當前複製的內容。
如果有的話,另一種方法來做這個過程可以自由地說出來。
謝謝。對不起,我的英語不好。
public class copyWord {
public static String copy_From_Original() {
try {
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_C);
robot.keyRelease(KeyEvent.VK_C);
robot.keyRelease(KeyEvent.VK_CONTROL);
} catch (AWTException ex) {
Logger.getLogger(copyWord.class.getName()).log(Level.SEVERE, null, ex);
}
String word = copy_From_ClipBoard();
return word;
}
private static String copy_From_ClipBoard() {
Toolkit toolkit = Toolkit.getDefaultToolkit();
Clipboard clipboard = toolkit.getSystemClipboard();
try {
String result = (String) clipboard.getData(DataFlavor.stringFlavor);
return result;
} catch (Exception e) {
System.out.println("ERROR");
return null;
}
} }
謝謝回答VGR。所選文字不屬於任何組件。它來自另一個位置。像MS詞或什麼的。所以這就是我使用機器人的原因。 –
這是一個挑戰。 Java不能真正監視或控制其他應用程序中的活動。 – VGR
這很糟糕。我不需要選擇一個詞,只需要複製一個選定的詞。爲此,無需控制或監視其他應用程序。只需發送Windows正常複製信號並將其抓到剪貼板。只是所有。機器人會這樣做。 –