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