자바 로 마우스 우 클릭 차단
1805 단어 jna
package com.xxx.proj.browser;
import com.sun.jna.platform.win32.Kernel32;
import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinDef.HMODULE;
import com.sun.jna.platform.win32.WinDef.LRESULT;
import com.sun.jna.platform.win32.WinDef.WPARAM;
import com.sun.jna.platform.win32.WinUser;
public class MouseHook implements Runnable {
private WinUser.HHOOK hhk;
//
private WinUser.LowLevelKeyboardProc mouseProc = new WinUser.LowLevelKeyboardProc() {
@Override
public LRESULT callback(int nCode, WPARAM wParam, WinUser.KBDLLHOOKSTRUCT event) {
//
if (nCode >= 0) {
// System.out.println(wParam);
//
if (wParam.intValue() == 517 || wParam.intValue() == 516)
return new LRESULT(1);
}
return User32.INSTANCE.CallNextHookEx(hhk, nCode, wParam, null);
}
};
public void run() {
setHookOn();
}
//
public void setHookOn() {
System.out.println("Hook On!");
HMODULE hMod = Kernel32.INSTANCE.GetModuleHandle(null);
hhk = User32.INSTANCE.SetWindowsHookEx(User32.WH_MOUSE_LL, mouseProc, hMod, 0);
int result;
WinUser.MSG msg = new WinUser.MSG();
while ((result = User32.INSTANCE.GetMessage(msg, null, 0, 0)) != 0) {
if (result == -1) {
setHookOff();
break;
} else {
User32.INSTANCE.TranslateMessage(msg);
User32.INSTANCE.DispatchMessage(msg);
}
}
}
//
public void setHookOff() {
System.out.println("Hook Off!");
User32.INSTANCE.UnhookWindowsHookEx(hhk);
System.exit(0);
}
public static void main(String[] args) {
MouseHook kbhook = new MouseHook();
new Thread(kbhook).start();
}
}
원본 코드:https://download.csdn.net/download/aidy2008/10678219
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 의 jna 와 C/C++의 대응 관계텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.