You can, as already mentioned, use the GetAsyncKeyState function. First use the KeyDown event and check if Shift (for example) is pressed, you can then call GetAsyncKeyState and pass VK_LSHIFT to check if it's the left shift key that has been pressed, if not VB_RSHIFT must have been pressed (this does not work on Win9x).