可以用來粘貼隨機測試數據
package com.superzlc.test;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import com.melloware.jintellitype.HotkeyListener;
import com.melloware.jintellitype.JIntellitype;
import com.melloware.jintellitype.JIntellitypeConstants;
/**
* 去git上下載源碼,編譯安裝,再把兩個dll複製到mvn倉庫剛安裝的裏的com.melloware.jintellitype下。
* maven導入依賴,再使用下面的代碼。
* 簡單使用:註冊按鍵,設置熱鍵id和對應的鍵位;監聽熱鍵事件,根據熱鍵id執行不同的邏輯。
*
*/
public class TestHotKey implements HotkeyListener {
public static void main(String[] argv) {
new TestHotKey().start();
}
void start() {
System.out.println("啓動全局快捷鍵監聽");
JIntellitype jinstance = JIntellitype.getInstance();
jinstance.registerHotKey(1001, JIntellitypeConstants.MOD_CONTROL, (int) 'B');
jinstance.registerHotKey(1002, JIntellitypeConstants.MOD_CONTROL | JIntellitypeConstants.MOD_SHIFT, (int) 'B');
jinstance.addHotKeyListener(this);
}
boolean isChangeNumAddOne = true;
@Override
public void onHotKey(int identifier) {
System.out.println("onHotKey: " + identifier);
if (identifier == 1002) { // 啓用禁用剪貼板數據更新
isChangeNumAddOne = !isChangeNumAddOne;
if (isChangeNumAddOne) {
System.out.println("啓動剪貼板更新");
} else {
System.out.println("停用剪貼板更新");
}
} else if (identifier == 1001) {
if (isChangeNumAddOne) { // 執行剪貼板數據更新
changeNumAddOne();
} else {
System.out.println("沒有剪貼板更新");
}
}
}
// 剪貼板如果是數字格式字符串,那修改+1
static void changeNumAddOne() {
String str = getClipboardString();
System.out.println("讀取剪貼板: " + str);
if (str == null) {
return;
}
String str2 = addOne(str);
if (str2 != null) {
setClipboardString(str2);
System.out.println("設置剪貼板: " + str2);
}
}
static String addOne(String str) {
if (str.matches("\\d+\\.?\\d+")) {
int x = str.indexOf('.');
if (x > 0) {
long a = Long.parseLong(str.substring(0, x)) + 1;
return a + str.substring(x);
} else {
return String.valueOf(Long.parseLong(str) + 1);
}
}
return null;
}
public static void setClipboardString(String text) {
Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
cb.setContents(new StringSelection(text), null);
}
public static String getClipboardString() {
Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable transf = cb.getContents(null);
if (transf != null) {
if (transf.isDataFlavorSupported(DataFlavor.stringFlavor)) {
try {
return (String) transf.getTransferData(DataFlavor.stringFlavor);
} catch (Exception e) {
//e.printStackTrace();
}
}
}
return null;
}
}