Как напечатать / нажать «@» с помощью функции keybd_event?

Чтобы нажать «а» код

keybd_event(VkKeyScan(64),0,0,0);

Выпуск кода ключа

keybd_event(VkKeyScan(64),0,KEYEVENTF_KEYUP,0);

Для нажатия «@» мне нужна комбинация двух клавиш — SHIFT & 2, но я не знаю как.

keybd_event (https://msdn.microsoft.com/en-us/library/windows/desktop/ms646304(v=vs.85).aspx)

2

Решение

Попробуйте следующее:

  1. Нажмите Shift
  2. Нажмите 2
  3. Выпуск 2
  4. Отпустить сдвиг

добавление

Я только что проверил свой собственный код, где я сделал то же самое … keybd_event устарела (как указано на сайте, на который вы ссылаетесь), вы должны использовать SendInput вместо.

Это две мои функции для отправки нажатия и отпускания клавиши:

void sendKeyDown(unsigned char keyCode)
{
INPUT input;
input.type = INPUT_KEYBOARD;

input.ki.wVk = keyCode;
input.ki.dwFlags = 0;
input.ki.time = 0;
input.ki.dwExtraInfo = 0;

SendInput(1, &input, sizeof(INPUT));
}

void sendKeyUp(unsigned char keyCode)
{
INPUT input;
input.type = INPUT_KEYBOARD;

input.ki.wVk = keyCode;
input.ki.dwFlags = KEYEVENTF_KEYUP;
input.ki.time = 0;
input.ki.dwExtraInfo = 0;

SendInput(1, &input, sizeof(INPUT));
}

И это должно дать вам @:

sendKeyDown(VK_SHIFT);
sendKeyDown(0x32);
sendKeyUp(0x32);
sendKeyUp(VK_SHIFT);

Пожалуйста, проверьте 0x32Я не могу надежно проверить это в данный момент, чтобы быть ключевым 2,

1

Другие решения


По вопросам рекламы [email protected]