Миры, вы правильно блокируете клавиши, но вам нужно выполнить побитовые операции И над вашими флагами lParam.flags, чтобы определить, была ли нажата более одной клавиши-модификатора.
Это не в моей голове, но я думаю, что код выглядит так:
(lParam.flags == 32)
должно выглядеть примерно так:
((lParam.flags & 32 == 32) && (lParam.flags & 16 == 16))
32 и 16 являются произвольными в этом примере. Вам нужно выяснить, какие значения ALT и CTRL на самом деле. Они будут равны 1, 2, 4 ... 16, 32 и т. Д., Так что их можно объединить в одно значение.