You might try using the #onKeyDown method or the #onKeyUp method instead, but you still may have issues, since you wont be able to receive these key presses in a tool event if they are used as a shortcut. (There are plenty of topic about it here…)
Like in your example the “C” is basically assigned to activate the Circle Tool. To be able to use this letter in your Tool, you (the user) need to be un-assign this letter at the UI Preferences.
As @dezmo says, you cannot use just the C key from a Ruby tool when it is assigned to a shortcut for a native tool. Also, if a application shortcut is assigned to SHIFT+C, then this also will exit your Ruby tool and fire the command assigned to this shortcut.
For keyboard use of context menus, the user can press TAB to give the first item the focus, then either TAB again to subsequent items, (or the down arrow key) … then ENTER to choose the item and fire the command for it.
Here is code to test TABbing through a context menu:
def getMenu(menu, flags, x, y, view)
menu.add_item("Test One") do
p "Test 'One' pressed"
menu.add_item("Test Two") do
p "Test 'Two' pressed"
menu.add_item("Test Three") do
p "Test 'Threee' pressed"