Off the top of my head I can't think of a function in the Win32 API that changes the delay when reading keys. You could pass the Virtual Key Code into a loop that continuously calls "GetASyncState()" and does what ever while that function returns true. I would even go so far as to suggest doing this in a separate thread so that it does not interrupt your program execution if possible.