-
Стоит задача определить на Delphi было ли реальное нажатие кнопки мыши или же это была эмуляция. В какую сторону хоть копать?
-
А нажатие кнопки на татчпаде или прикосновение пальца к сенсорному экрану и т.д. и т.п. к какому варианту отнести?
-
К эмуляции конечно ) Меня интересует именно физическая мышь и кнопка на ней. Цель - заблокировать любого рода эмуляцию, будь то тачпад, сенсорный экран или же программа-эмулятор.
-
например поставить хук WH_MOUSE_LL
если у мышиного сообщения нет соответствующего вызова процедуры хука то это эмуляция посылкой мышиных сообщений. Если есть вызов хука но MSLLHOOKSTRUCT.flags содержит LLMHF_INJECTED то это эмуляция через SendInput или аналоги. Иначе событие действительно пришло от мышиного драйвера, но нет гарантии что какой-нить драйвер не сэмулировал его в ядре
-
100% гарантии нет...
-
> bems © (10.07.13 03:14) [3]
Не проверял, но имхо татчпад и другие подобные устройства от мыши таким способом не отличить.
-
Провод от кнопки мыши вешаешь на ком порт и опрашиваеш его переодически.
-
Провод от кнопки мыши вешаешь на ком порт и опрашиваеш его переодически.
-
А если мышь ps/2 или usb ?
-
> например поставить хук WH_MOUSE_LL
Попробовал, ничем не отличается нажатие кнопки мыши и использование "клавиатурной мыши" из комплекта "Ограниченные возможности".
-
> Не проверял, но имхо татчпад и другие подобные устройства
> от мыши таким способом не отличить.
> Попробовал, ничем не отличается нажатие кнопки мыши и использование
> "клавиатурной мыши" из комплекта "Ограниченные возможности".
да. идеального решения тут не существует
-
> Цель - заблокировать любого рода эмуляцию, будь то тачпад,
> сенсорный экран или же программа-эмулятор.
устанешь блокировать 100%
-
сакральный вопрос - а нафига?
-
>сакральный вопрос - а нафига?
Выявить в онлайн-игре тех, кто использует бота-автоматизатора для игры. Да и вообще не дать ему возможность кликать кнопки мыши в игре.
-
- если в HAL не закапываться:
DirectInput
HID API
в качестве параноидальной полумеры можно подпись драйвера проверять(хотябы на WHQL)...
-
> кто использует бота-автоматизатора
какбэ есть мыши с макросами, их ты никакими средствами не перехватишь
-
>какбэ есть мыши с макросами, их ты никакими средствами не перехватишь
Решено уже, перехват сделан.
-
> [16] Woolf76 © (14.07.13 16:10)
Как это?
-
> Как это?
просто написал для отмазы, в стиле "вы все ламеры"
-
код бы посмотреть...
-
GetAsyncKeyState берет данные напрямую от драйвера клавиатуры/мыши
-
Конечно, и его сэмулировать можно, но придется писать свои драйвера для мыши. А обычные сообщения окну о нажатии кнопок оно игнорирует.
-
> [21] Woolf76 © (18.07.13 14:30)
Ты написал, что отловил макросы, соврал, значит. Мышки-то программируются из из своих нутрей уже шлют нужные последовательности нажатий. Так что - задача отлова нерадивых игроков не решена.