Если нужно локально нажать чтоб игра думала, что ты нажимаешь то setGameKeyState. Нужно использовать в цикле так как действие длится 1 кадр. Работает безотказно при любых обстоятельствах, позволяет переписывать реальное состояние нажатия.
Если нужно именно для сервера нажать используй отправку пакетов на сервер с состоянием нажатия нужной клавиши. Учти что она сервером считается нажата до отправки пакета без неё. Так что для двойного нажатия между ними должен быть пакет без нажатой кнопки. Пакеты сами отправляются автоматически, так что для длительного зажатия хукай исходящую синхру и меняй там состояние кнопки.
Это единственные 2 нормальных варианта нажатия. Во всех остальных случаях если это не подходит тебе и не нужно её нажимать, это будет костылём. В контексте cef и прочей кастомное фигни нужно работать с пакетами кастомными пакетами непосредственно относящимся к этому.
Опять же ты почему то не говоришь в каком конкретно контексте и для чего тебя нужно нажатие. А без этого нет возможности дать ответ, так как для разных ситуаций он может быть другой