2012-07-15 18 views
7

Mamy 2 CTRL/ALT/SHIFT przycisków na naszej klawiaturze. Ale w api aplikacji win dostępne są: VK_CONTROL/VK_LCONTROL/. Więc jaka wartość jest domyślna dla wartości (po lewej) lub VK_RCONTROL (po prawej)? A może wybiera wartość w zależności od sytuacji? Nie można znaleźć odpowiedzi w MSDN ani w Google.Wartość domyślna dla VK_CONTROL/VK_MENU/VK_SHIFT

Myślę, że to nie ma znaczenia w połączeniu z CTRL - są na przemian, ale robi różnicę z np. ALT.

+0

szukać w windows.h header – Blablablaster

+2

'VK_CONTROL' oznacza" albo klawisze kontrolne są wyłączone (nie powiem ci, który h)). –

Odpowiedz

7

Tekst z WINUSER.H:

VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
Used only as parameters to GetAsyncKeyState() and GetKeyState().
No other API or message will distinguish left and right keys in this way.

+0

ale jak widzę, wszystkie trzy mają trzy różne wartości. Co więcej, funkcja SendInput() rozróżnia lewy i prawy. Na przykład. w moim języku nie mogę napisać jakiejś litery za pomocą lewego ALT, ale mogę to zrobić za pomocą prawego ALT, a przy SendInput, gdy wysyłam lewy ALT, nie drukuje to, co powinien, ale z prawą ALT to robi. – tobi

+1

Masz rację, ten komentarz z nagłówka koncentruje się na USA. Lewy i prawy ALT są traktowane jako oddzielne klawisze również na brytyjskich klawiaturach, chociaż SHIFT i CTRL nie są. Co więcej, co właściwie chcesz robić? – arx

+0

Pozwalam użytkownikom na wysyłanie tekstu za pomocą SendInput() (z niektórymi specjalnymi klawiszami, takimi jak ctrl, alt itd.) I zastanawiam się, czy powinienem zezwolić użytkownikom na używanie trzech wartości dla ctrl i alt lub mniej, ale ja myślę, że to raczej dyskusja niż format pytań i odpowiedzi. – tobi

2

O ile mogę powiedzieć te stałe są deklarowane w WINUSER.H

#define VK_LSHIFT   0xA0 
#define VK_RSHIFT   0xA1 
#define VK_LCONTROL  0xA2 
#define VK_RCONTROL  0xA3 
#define VK_LMENU   0xA4 
#define VK_RMENU   0xA5 
+0

ale VK_CONTROL ma wartość 0x11, więc różni się od tych dwóch powyżej. Ale nie mamy 3 klawiszy CTRL na klawiaturze. – tobi