У меня есть одно приложение C ++, которое преобразует сенсорные события в ввод мыши. я использую SendInput API для отправки событий мыши в системе Windows 7 (32/64-bit). Для разрешения пользователям вводить символы в приложениях я использую встроенную Windows экранная клавиатура (osk.exe).
Любое событие мыши, генерируемое моим приложением, которое происходит когда курсор находится над оформлением окна OSK-окна (строка заголовка, системное меню и т. д.), зависает мышь. Кажется, обрабатывается только событие нажатия кнопки мыши, так как я вижу, как OSK получает фокус. Мое приложение продолжает отправлять другие события мыши, но они не влияют на окно OSK. Единственный выход — нажать / отпустить физическую USB-мышь, подключенную к системе.
Странно то, что использование OSK для ввода символов с помощью нажатия кнопок мыши на клавиатуре OSK из моего приложения работает нормально. Просто попытка переместить (или закрыть) окно OSK останавливает работу мыши.
В качестве решения я попробовал следующие вещи:
(1) сделать UIAccess = TRUE в файле манифеста моего заявления
(2) Код приложения уже подписан
(3) Приложение находится в надежном месте
Но все же проблема возникает.
Если я запускаю свое приложение как администратор, тогда работает нормально. Но я не хочу, чтобы мое приложение запускалось как «Запуск от имени администратора».
Любое предложение?
Задача ещё не решена.
Других решений пока нет …