Я работал над системой ввода событий.
Я сопоставил все клавиши на своей клавиатуре, коды сканирования и т. Д., Включая обе клавиши Windows.
Когда я нажимаю их, программа успешно получает для них четкие события нажатия клавиш без каких-либо проблем.
Однако когда я отпускаю клавиши, появляется меню «Пуск», скрывая программу в режиме Windows или даже минимизируя ее в полноэкранном режиме.
Так что моя проблема в том, чтобы подавить это.
Arma 2, военный симулятор / игра позволяет отображать команды на эти клавиши без каких-либо проблем.
Где я должен поймать это событие?
Могу ли я сделать это для своего окна, если оно имеет фокус?
Собираюсь ли я застрять с отключенным win-ключом, пока он работает?
Или что-то еще?
Поиск в Google был в основном бесплодным из-за того, что ключ Windows также ссылался на ключ продукта, и когда я что-то находил, он обычно отключал целую кнопку.
Я просто хочу подавить всплывающее окно.
Edit:
Я пытался
case WM_SYSCOMMAND:
switch(wParam)
{
case SC_TASKLIST:
return 0;
default:
break;
}
Но это дало мне очень странные результаты.
Если бы я спамил спам и только спам, это сработало, и как только я переместил мышь, это не сработало, меню пуск снова всплыло.
Edit:
Я также пробовал хуки, но на win7 они удаляются, если обратный вызов занимает слишком много времени, что может случиться при загрузке больших данных, поэтому они предлагают для этого выделенный поток, но я думаю, что это излишне только для одного ключа, который требует обработки.
Я просто хочу знать, где вызывается меню «Пуск». Моя собственная программа? Система?
Это чертовски раздражает, я обдумываю попытки связаться с людьми из Bohemia Interactive и спросить их, как они это сделали.
Только этот один ключ, боже, Microsoft ... даже с поисковыми терминами "Супер ключ / суперключ", я обычно получаю только откровенные методы отключения, от изменений реестра до сторонних фоновых программ.
Ба!