2012-07-15 11 views
7

Chúng tôi có 2 CTRL/ALT/SHIFT nút trên bàn phím của chúng tôi. Nhưng có VK_CONTROL/VK_LCONTROL/VK_RCONTROL có sẵn trong api giành chiến thắng. Vì vậy, giá trị nào là mặc định cho VK_CONTROL?VK_LCONTROL (bên trái) hoặc VK_RCONTROL (bên phải)? Hoặc có lẽ nó choses giá trị tùy thuộc vào một số tình huống? Không thể tìm thấy câu trả lời ở cả MSDN lẫn Google.Giá trị mặc định cho VK_CONTROL/VK_MENU/VK_SHIFT

Tôi cho rằng việc kết nối với CTRL - chúng đang xen kẽ, nhưng nó tạo sự khác biệt với ví dụ: ALT.

+0

nhìn cho nó trong windows.h header – Blablablaster

+2

'VK_CONTROL' có nghĩa là" phím điều khiển bị hỏng (tôi sẽ không nói cho bạn biết h một) ". –

Trả lời

7

văn bản từ 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

nhưng như tôi có thể thấy ở đó ba trong số chúng có ba giá trị khác nhau. Hơn nữa, SendInput() không phân biệt trái và phải. Ví dụ. bằng ngôn ngữ của tôi, tôi không thể viết một số chữ cái bằng ALT trái nhưng tôi có thể làm điều đó bằng cách sử dụng ALT phải, và với SendInput khi tôi gửi ALT bên trái nó không in những gì cần, nhưng với ALT phải. – tobi

+1

Bạn nói đúng, nhận xét đó từ tiêu đề là trọng tâm của Hoa Kỳ. ALT trái và phải được coi là các khóa riêng biệt trên bàn phím tiếng Anh, mặc dù SHIFT và CTRL thì không. Hơn nữa, bạn thực sự muốn làm gì? – arx

+0

Tôi cho phép người dùng gửi một số văn bản bằng cách sử dụng SendInput() (với một số phím đặc biệt như ctrl, alt v.v.) và tôi tự hỏi liệu tôi có nên cho phép người dùng sử dụng ba giá trị cho ctrl và alt hay ít hơn, nhưng tôi nghĩ rằng nó giống như một cuộc thảo luận hơn là một định dạng Hỏi & Đáp. – tobi

2

Theo như tôi có thể nói với các hằng số được khai báo trong 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

nhưng VK_CONTROL là 0x11, vì vậy nó khác với hai loại ở trên. Nhưng chúng tôi không có 3 CTRL trên bàn phím. – tobi