shiftと同時に押されてるキーがあるかどうかで分岐したいんでしょ
getkeystateは何が押されてるかを網羅するのは大変だから
dllcallでGetKeyboardStateでも呼び出したらいいんじゃね