Сборник часто задаваемых вопросов по программированию в среде Borland C++ Builder

           

Как выловить нажатие Shift при запуске программы?



Вопрос: Как выловить нажатие Shift при запуске программы?

Ответ : Используйте GetKeyState() из Win32API; В OnCreate формы пишешь: code: -------------------------------------------------------------------------------- SHORT SW = GetKeyState(VK_LSHIFT); // Типа статус ворд if((SW = (SW>>15)&1) != 0) MessageBox(HWND_DESKTOP, "Левый Shift однозначно нажат",NULL,MB_OK); -------------------------------------------------------------------------------- На правый шифт VK_RSHIFT соответственно. Если нужно обрабатывать нажатие шифта по ходу дела, то поставь в главной форме ( у меня MainForm) KeyPreview = true, и обрабатывайте событие OnKeyDown: code: -------------------------------------------------------------------------------- void __fastcall TMainForm::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if(Shift.Contains(ssShift)) Application->MessageBox("Shift пашет",NULL,MB_OK); } --------------------------------------------------------------------------------

Содержание раздела