日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

hook java_Java 实现 Hook 对鼠标键盘监听 - 沐早'S NOTEBOOK - CSDN博客

發(fā)布時(shí)間:2025/3/19 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hook java_Java 实现 Hook 对鼠标键盘监听 - 沐早'S NOTEBOOK - CSDN博客 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Java 實(shí)現(xiàn)全局(全操作系統(tǒng))的鼠標(biāo)和鍵盤監(jiān)控,使用的是SWT Win32 Extension 項(xiàng)目,在以前若使用Java恐怕是很難實(shí)現(xiàn)的!

SWT Win32 Extension 讓Java擁有了許多對(duì)操作系統(tǒng)底層操作的功能!

以下兩個(gè)例子是:

(一)鼠標(biāo)Hook

importorg.sf.feeling.swt.win32.extension.hook.Hook;

importorg.sf.feeling.swt.win32.extension.hook.data.HookData;

importorg.sf.feeling.swt.win32.extension.hook.data.MouseHookData;

importorg.sf.feeling.swt.win32.extension.hook.listener.HookEventListener;

publicclassHotMouse?{

publicstaticvoidmain(String[]?args)?{

Hook.MOUSE.addListener(newHookEventListener()?{

publicvoidacceptHookData(HookData?hookData)?{

if(hookData?!=null)?{

//System.out.println("Mouse?Point?X?=?"?+?((MouseHookData)hookData).getPointX());

//System.err.println("Mouse?Point?Y?="?+?((MouseHookData)hookData).getPointY());

System.err.println(((MouseHookData)hookData).getPointX()+","+?((MouseHookData)hookData).getPointY());

}

if(hookData.getWParam()?==513)?{?????????System.out.println("left?button?pressed");//?left?button?pressed

}?elseif(hookData.getWParam()?==514)?{??System.out.println("left?button?released");//?left?button?released

}?elseif(hookData.getWParam()?==516)?{??System.out.println("right?button?pressed");//?right?button?pressed

}?elseif(hookData.getWParam()?==517)?{??System.out.println("right?button");//?right?button

}?elseif(hookData.getWParam()?==519)?{??System.out.println("middle?button?519");//?middle?button

}?elseif(hookData.getWParam()?==520)?{??System.out.println("middle?button?520");//?middle?button

}

}

});

Hook.MOUSE.install();

}

}

import org.sf.feeling.swt.win32.extension.hook.Hook;

import org.sf.feeling.swt.win32.extension.hook.data.HookData;

import org.sf.feeling.swt.win32.extension.hook.data.MouseHookData;

import org.sf.feeling.swt.win32.extension.hook.listener.HookEventListener;

public class HotMouse {

public static void main(String[] args) {

Hook.MOUSE.addListener(new HookEventListener() {

public void acceptHookData(HookData hookData) {

if (hookData != null) {

//System.out.println("Mouse Point X = " + ((MouseHookData)hookData).getPointX());

//System.err.println("Mouse Point Y =" + ((MouseHookData)hookData).getPointY());

System.err.println(((MouseHookData)hookData).getPointX()+"," + ((MouseHookData)hookData).getPointY());

}

if (hookData.getWParam() == 513) { System.out.println("left button pressed");// left button pressed

} else if (hookData.getWParam() == 514) { System.out.println("left button released");// left button released

} else if (hookData.getWParam() == 516) { System.out.println("right button pressed");// right button pressed

} else if (hookData.getWParam() == 517) { System.out.println("right button");// right button

} else if (hookData.getWParam() == 519) { System.out.println("middle button 519");// middle button

} else if (hookData.getWParam() == 520) { System.out.println("middle button 520");// middle button

}

}

});

Hook.MOUSE.install();

}

}

(二)鍵盤Hook

importorg.sf.feeling.swt.win32.extension.hook.Hook;

importorg.sf.feeling.swt.win32.extension.hook.data.HookData;

importorg.sf.feeling.swt.win32.extension.hook.data.KeyboardHookData;

importorg.sf.feeling.swt.win32.extension.hook.listener.HookEventListener;

publicclassHotKey?{

publicstaticvoidmain(finalString[]?args)?{

Hook.KEYBOARD.addListener(newHookEventListener(){//@Override

publicvoidacceptHookData(HookData?arg0)?{

KeyboardHookData?KHD?=?((KeyboardHookData)arg0);

System.out.println(KHD.getWParam()+"?-?"+KHD.getTransitionState());//Print?code

if(?KHD.getScanCode()?==29&&?KHD.getTransitionState()){//按下Ctrl執(zhí)行動(dòng)作

System.out.println("Hotting");

}elseif(?KHD.getScanCode()?==1){//按下[ESC]結(jié)束

System.exit(0);

}

}});

Hook.KEYBOARD.install();??//註冊(cè)事件

}

}

import org.sf.feeling.swt.win32.extension.hook.Hook;

import org.sf.feeling.swt.win32.extension.hook.data.HookData;

import org.sf.feeling.swt.win32.extension.hook.data.KeyboardHookData;

import org.sf.feeling.swt.win32.extension.hook.listener.HookEventListener;

public class HotKey {

public static void main(final String[] args) {

Hook.KEYBOARD.addListener(new HookEventListener(){//@Override

public void acceptHookData(HookData arg0) {

KeyboardHookData KHD = ((KeyboardHookData)arg0);

System.out.println(KHD.getWParam()+" - "+KHD.getTransitionState()); //Print code

if( KHD.getScanCode() == 29 && KHD.getTransitionState()){ //按下Ctrl執(zhí)行動(dòng)作

System.out.println("Hotting");

}else if( KHD.getScanCode() == 1 ){ //按下[ESC]結(jié)束

System.exit(0);

}

}});

Hook.KEYBOARD.install(); //註冊(cè)事件

}

}

總結(jié)

以上是生活随笔為你收集整理的hook java_Java 实现 Hook 对鼠标键盘监听 - 沐早'S NOTEBOOK - CSDN博客的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。