Graeme's suggested solutions are correct.
There is an _IsKeyDown function in Slick-C but currently it only supports VSEV_CTRL and VSEV_SHIFT. On Windows, it ends up calling GetAsyncKeyState which supports checking many more keys. It doesn't support more keys primarily due to concerns with portability. NumLock, CapsLock, and ScrollLock support would be nice though.