This library works in UI apps. However, you won't be able to directly access UI elements from the NativeHook events since they run in a separate thread. Instead, you'll have to use Thread.RunOnGuiThread() to access UI elements (from the Threading library). I don't think this is your problem, though.