1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| import com.sun.jna.platform.win32.Kernel32;
import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinDef.LPARAM;
import com.sun.jna.platform.win32.WinDef.LRESULT;
import com.sun.jna.platform.win32.WinDef.WPARAM;
import com.sun.jna.platform.win32.WinUser.HHOOK;
import com.sun.jna.platform.win32.WinUser.HOOKPROC;
public class Main {
public interface CBTProc extends HOOKPROC
{
LRESULT callback(int nCode, WPARAM wParam, LPARAM lParam);
}
private static HHOOK hhk=null;
/**
* @param args
*/
public static void main(String[] args) {
CBTProc windowHOOK = new CBTProc() {
@Override
public LRESULT callback(int nCode, WPARAM wParam, LPARAM lParam) {
System.out
.println("callback()"+nCode);
return User32.INSTANCE.CallNextHookEx(hhk, nCode, wParam, lParam);
}
};
// 5 = WH_CBT
hhk = User32.INSTANCE.SetWindowsHookEx(5, windowHOOK,Kernel32.INSTANCE.GetModuleHandle(null),0);
System.out.println("hook installé");
while (true) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
} |
Partager