Those are certainly workable for the short term... But you really need to do what I did without breaking into Mark's system module... By that I mean you need to hook windows and intercept the messages as Mark does by grabbing WM_KEYDOWN and WM_KEYUP messages. You definitely don't want to be looping 255 times through the KeyHit() routine. I can't imagine that being very fast in comparison to simply checking the windows messages and reporting it back once.