SendInput() неправильно интерпретируется в определенных приложениях

Мой проект C# отправляет введенную комбинацию клавиш в окно переднего плана. В блокноте, Firefox, IE9 все работает так, как должно, но Adobe Illustrator CS5, похоже, неправильно интерпретирует отправленные комбинации: например, CTRL+G становится CTRL+SHIFT+WHEEL_DOWN, поэтому вместо группировки выбранных объектов он прокручивает страницу влево. (Низкоуровневая клавиатура также подтвердила, что я посылаю правильную комбинацию.)

Быстрый тест показал, что в этом безумии есть метод, поэтому CTRL+F выглядит как CTRL+SHIFT+WHEEL_UP.

Система - Windows 7 64-битная, поэтому сначала я подозревал, что 32-битное или 64-битное горе, но в 32-битном и 64-битном IE9 все работает правильно.

1 ответ

Решение

Я не могу сказать наверняка, но это звучит очень похоже на проблему, на которую указал пользователь моего приложения (именно так я и оказался в поисках подсказок!).

Для моего приложения оказалось, что мне нужно поместить некоторую задержку между событием нажатия клавиши Control и нажатием клавиши C (для копирования, в этом примере). При отправке одновременно в виде одной комбинации результаты были очень непредсказуемыми.

http://www.strokesplus.com/forum/topic.asp?whichpage=1&TOPIC_ID=477

Другие вопросы по тегам