|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Помогите отключить мышь в windows 8
Убил весь день и уже ночь и умотался уже, не знаю вроде бы элементарного.
Сделал программку, форма которой всегда поверх всех окон, она прозрачная и состоит из множества регионов, поддерживается мультитач. Суть программы имитировать виртуальный джойстик на windows 8 планшете рисуясь полупрозрачно поверх игры, все отлично работает даже если поставить на таймер управление мышкой то она ей в игре прекрасно управляет, но как бы знаем, тачскрин имитирует мышку, а раз я получаю нажатия на форму напрямую с тачскрина то мышка мне ненужна, более того она только все портит, потому что как только я жму на виртуальную кнопку то становиться активной окно формы из за мышки. Подойдет вариант с отключением устройства по vid/pid но как отключить устройство я тоже не понимаю. Гугл не помог, и все что было в гугле типа ActiveBlock и rundll32 mouse,disable и прочее не срабатывает. Помогите пожалуйста кто чем может, нужно отключить устройство мышь программно. Использую RadStudio Delphi XE7 обычный виндовый VCL проект. Сейчас проверил, отключение hid устройство не поможет, тогда и сам тач отключается и нажатие не передает. Есть для windows 8 программка, называется mousetouchpointer она имитирует тачпад как в ноутбуке, так вот она каким то образом умеет отключать мышь и ловить только нажатия с тача, вот как она так делает? Последний раз редактировалось -sanya-, 22.02.2015 в 01:40. |
#2
|
||||
|
||||
Начнём с того, что в восьмёрке всё наоборот, это мышь имитирует тачскрин, она пока осталась в ней для обычных компов и ноутов. Действует принцип "один экран - один курсор", поэтому можно сделать вывод, что здесь необходимо только спрятать изображение указателя и само устройство типа мышь можно и не трогать. Вероятно требуется подобное
Код:
var CState: Integer; ... // Убрать изображение курсора CState:= ShowCursor(True); while Cstate >= 0 do Cstate:= ShowCursor(False); ... // Показать курсор Cstate:= ShowCursor(True); while CState < 0 do CState:= ShowCursor(True); ... Я не понял Вашего вопроса, но всё же Вам на него отвечу! |