Смотрите хуки (глобальные) мыши, эмуляция нажатия клавиш и т.п. (msdn google)
Можно и на с++(си)
Под вопросом лучше имеется в виду "удобнее" . Любое готовое решение-обертка на любом языке. (Если описана полностью задача)
Точнее не подскажу.
А как будет работать p2p чат без сервера, если юзеры будут за NAT ?
Как юзеры будут находить друг друга без серверов, если у них будут динамические IP ?