Jak np. Builderze odczytać stan aktualni ewcisniętych klawiszy na klawiaturze?? Może ma ktoś jaką gotową funkcję do tego albo cus?? Z góry dzięki za odpowiedź.
0
0
winapi:
GetKeyState - stan pojedynczego klawisza.
GetKeyboardState - klawiatury, zapisuje stan klawiszy w tablicy.
0
Włączenie Caps Lock'a:
keybd_event(VK_CAPITAL, 0, 0, 0); //wciskam przycisk Caps Lock - VK_CAPITAL to kod klawisza Caps Lock
/* Ważne jest, aby po wciśnięciu klawisza go zwolnić: */
keybd_event(VK_CAPITAL, 0, KEYEVENTF_KEYUP, 0); //zwalniam klawisz Caps Lock
Teraz przykład wklejania ze schowka do, np. kontrolki Edit Box:
GetDlgItem(IDC_EDIT1)->SetFocus(); //uaktywniam kontrolkę Edit - ważne aby wkleiło do kontrolki Edit,
/* Jeżeli stworzyliśmy zmienną dla Edit'a typu Control to możemy zastosować */
m_ctlZmiennaEdit.SetFocus();
keybd_event(VK_CONTROL, 0, 0, 0); //wciskam Ctrl, ważne aby było VK_CONTROL, nie może być VK_LCONTROL ani VK_RCONTROL
keybd_event('V', 0, 0, 0); //wciskam klawisz v
keybd_event('V', 0, KEYEVENTF_KEYUP, 0); //zwalniam klawisz v
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); //zwalniam klawisz Ctrl
Ciekawsze kody wirtualnych klawiszy:
VK_LWIN - lewy klawisz rozwijania menu Start, (VK_PWIN - prawy)
VK_MENU - Alt (VK_LMENU, VK_RMENU - lewy, prawy Alt)
VK_SHIFT - Shift (VK_LSHIFT, VK_PSHIFT - lewy, prawy shift)
VK_CONTROL - Ctrl (VK_LCONTROL, VK_RCONTROL - lewy, prawy Ctrl)
VK_CAPITAL - Caps Lock
VK_NUMLOCK - Num Lock
VK_SCROLL - Scroll Lock
VK_APPS - klawisz menu kontekstowego
VK_TAB - tabulator
VK_RETURN - Enter
VK_ESCAPE - Esc
VK_SPACE - Spacja
VK_BACK - Backspace
VK_SNAPSHOT - Print Screen
VK_PAUSE - Pause
VK_PRIOR - Page Up
VK_NEXT - Page Down
VK_HOME - Home
VK_END - End
VK_INSERT - Insert
VK_DELETE - Delete
VK_SLEEP - klawisz usypiania komputera
VK_UP, VK_DOWN, VK_RIGHT, VK_LEFT - strzałki
VK_F1, VK_F2, ..., VK_F12 - odpowiednie klawisze funkcyjne