Софт вполне себе может различать, программа ему шлёт нажатия или железо.
Нажатие кнопок мыши это события WN_LBUTTONUP или WN_LBUTTONDOWN за это отвечает часть ядра системы User32.dll оконный менеджер. Обработчик событий указатель которого отражен в WNDCLASSEX.lpfnWndProc и зарегистрирован на конкретное созданное окно и он не отличит кто шлет ему SendMessageA(... вызывая WndProc. Другое дело внедрение в процесс и перехват событий, на которое будет ругаться антивирус и прочая программа перехватывающая системное WindowsAPI на уровне ядра.
Например, антивирус Касперского так делает: окна настройки через удалёнку (например teamviewer) не прожимаются.
Такoe может происходить при переключение рабочих столов и рабочей станции где не верно получен дескриптор GetDesktopWindow() и как следствие неверная отправка SendMessageA/W(...
Я лишь хочу сказать, что контролирующий софт просто так не обмануть, он против этого и борется. А вот аппаратная мышка с врождённой эпилепсией вполне себе сработает.
1) Не отличит, если это SendMessageA(...
2) Нет контроля за мышью на уровне ядра.