download JNativeHook.jar and copy into /Library/Java/Extensions/
% rbenv install jruby-1.7.9
% jruby hook.rb
download JNativeHook.jar and copy into /Library/Java/Extensions/
% rbenv install jruby-1.7.9
% jruby hook.rb
### translate jnativehook example to JRuby | |
### https://code.google.com/p/jnativehook/wiki/examples | |
require 'java' | |
import org.jnativehook.GlobalScreen; | |
import org.jnativehook.NativeHookException; | |
import org.jnativehook.keyboard.NativeKeyEvent; | |
import org.jnativehook.keyboard.NativeKeyListener; | |
import org.jnativehook.mouse.NativeMouseEvent; | |
import org.jnativehook.mouse.NativeMouseInputListener; | |
class KeyHook | |
include NativeKeyListener | |
def nativeKeyPressed(e) | |
puts NativeKeyEvent.getKeyText e.getKeyCode | |
end | |
def nativeKeyReleased(e) | |
puts NativeKeyEvent.getKeyText e.getKeyCode | |
end | |
def nativeKeyTyped(e) | |
puts NativeKeyEvent.getKeyText e.getKeyCode | |
end | |
end | |
class MouseHook | |
include NativeMouseInputListener | |
def nativeMouseMoved(e) | |
puts "#{e.getX}, #{e.getY}" | |
end | |
end | |
GlobalScreen.registerNativeHook | |
GlobalScreen.getInstance.addNativeKeyListener KeyHook.new | |
GlobalScreen.getInstance.addNativeMouseMotionListener MouseHook.new | |
loop do | |
sleep 1 | |
end |