Win+L через SendInput не работает
От: SVV Беларусь  
Дата: 30.03.22 08:18
Оценка:
Всем привет.

Взял код с сайта Microsoft, немного доработал его и пробую послать Win+L. Хочу программно лочить винду после автологина. Не срабатывает блокировка. Win+E (запуск эксплорера) — работает. Win+D работает.
UINT WinL(WORD wCode)
{
  INPUT inputs[4] = {};
  ZeroMemory(inputs, sizeof(inputs));

  inputs[0].type = INPUT_KEYBOARD;
  inputs[0].ki.wVk = VK_LWIN;

  inputs[1].type = INPUT_KEYBOARD;
  inputs[1].ki.wVk = wCode;

  inputs[2].type = INPUT_KEYBOARD;
  inputs[2].ki.wVk = wCode;
  inputs[2].ki.dwFlags = KEYEVENTF_KEYUP;

  inputs[3].type = INPUT_KEYBOARD;
  inputs[3].ki.wVk = VK_LWIN;
  inputs[3].ki.dwFlags = KEYEVENTF_KEYUP;

  UINT uSent = SendInput(ARRAYSIZE(inputs), inputs, sizeof(INPUT));
  return uSent;
}
...
Sleep(1000);
UINT res = WinL('L');

В чем может быть проблема? Win10
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.