>And what's wrong with ISALPHA([d])?
I don't know since I can not work that quick on more than 10 things at once.
I've tried
LPARAMETERS nKeyCode, nShiftAltCtrl
if between(nKeyCode, 32, 255) and isalpha(chr(nKeyCode))
NODEFAULT
DODEFAULT(Asc(Upper(Chr(nKeyCode))),nShiftAltCtrl)
ENDIF
And in quick tests didn't get errors.
However, Copy-paste obviously didn't work and should be handled separately.
If it's not broken, fix it until it is.
My Blog