теоретически, можно.
практически, да с учетом Висты - нереально.
Но потеоретизировать можно.
Дело в том, что все софтовые нажималки-кликалки обычно пользуются только вызовом SendMessage или PostMessage. Соответсвенно, хукнув их можно отследить нужные сообщения, типа WM_CHAR.
Шаг второй - установка соотв. драйвера устройства в цепочку. Причем как можно "ниже" (т.е. ближе к устройству). Вот оттуда ты получишь информацию о том, действительно ли произошло нажатие клавиши.
Далее просто сравниваешь эти 2 лога (т.к. Windows не является ОС реального времени, то там явно будет некоторый разброс по времени). Если соотв. события присутствуют в обеих логах - значится человек. Если только в одном -значится программа.
Думаю таким образом можно это отследить. Но, повторюсь, реально сделать такую штуку еще можно, хотя делать зачузаешься, но вот незаметно подсадить - вот это уже будет высший пилотаж
