Мне нужно сделать специальную горячую клавишу для функции alt-tab. Я делаю это с SendInput
отправив соответствующие ключи, и все работает нормально.
Однако, если горячая клавиша уже включает клавишу alt, программе нужно только нажать и отпустить вкладку; но при этом меню alt-tab застревает даже на экране, и единственный способ убрать его — закрыть мою программу. Как это могло произойти, и какое отношение закрытие моей программы имеет к исчезновению меню?
С другой стороны, отправка (alt down) (tab down) (tab up) (alt up) клавиш независимо от того, был ли alt уже выключен, работает во всех случаях, но я не могу полагаться на это поведение по другим причинам.
Я использую WinXP, если это помогает, я еще не пробовал его на компьютере с Win7.
Была аналогичная проблема, вызванная выполнением PostMessage WM_KEYDOWN, VK_TAB, в событии, вызванном оператором, щелкающим ALT-N, чтобы отменить действие. Таким образом, клавиша ALT была еще не нажата, когда вкладка была отправлена. Поскольку наш код никогда не отправляет WM_KEYUP, он, должно быть, запутал Win XP. Оставьте меню alt-tab на экране, пока приложение не закроется.
Я не знаю, связано ли это, но Alt + Ctrl + Tab приводит к зависанию меню, так же, как если бы Alt удерживался при нажатии Alt + Tab. Так что, может быть, вы посылаете сигнал Ctrl как-то.