Odczyt stanu klawiatury

0

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

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

http://4programmers.net/Forum/viewtopic.php?id=68017

1 użytkowników online, w tym zalogowanych: 0, gości: 1