컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - 키보드 가상 키란 무엇입니까?

키보드 가상 키란 무엇입니까?

가상 키 코드는 WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN 및 WM_SYSKEYUP 메시지의 wParam 매개변수에 저장됩니다. 이 코드는 눌렀거나 놓은 키를 식별합니다.

가상이란 현실 세계가 아닌 머리 속에 존재해야 하는 것을 의미하며, DOS 조합 언어로 응용 프로그램을 작성하는 데 능숙한 프로그래머만이 왜 이런 Windows 키보드의 기본 키 코드가 진짜가 아닌 가상인지 지적할 수 있다.

초기 프로그래머의 경우 실제 키 코드는 실제 키보드 하드웨어에서 생성되었습니다. 이러한 키는 Windows 문서에서 "스캔 코드" 라고 합니다. IBM 호환 모델에서 스캔 코드 16 은 q 키, 17 은 w 키, 18 은 e, 19 는 r, 20 은 t 입니다 이때 스캔 코드는 키보드의 실제 레이아웃을 기반으로 한다는 것을 알 수 있습니다. Windows 개발자는 이러한 코드가 장치와 너무 관련이 있다고 생각하여 소위 가상 키 코드를 정의하여 장치 독립적 방식으로 키보드를 처리하려고 합니다. 이러한 가상 키 코드 중 일부는 IBM 호환 모델에서는 생성할 수 없지만 다른 제조업체의 키보드 또는 향후 키보드에서는 찾을 수 있습니다.

사용하는 대부분의 가상 키의 이름은 WINUSER 헤더 파일에서 VK_ 로 시작하도록 정의됩니다. 표 6-2 에는 이러한 이름과 값 (10 진수와 16 진수) 과 IBM 호환 키보드의 가상 키에 해당하는 키가 나와 있습니다. 다음 표는 Windows 실행에 이러한 키가 필요한지 여부도 나타냅니다. 다음 표에는 가상 키 코드도 숫자 순서로 나열되어 있습니다.

처음 4 개의 가상 키 코드 중 3 개는 마우스 버튼을 나타냅니다.

표 6-2

10 진수 16 진수 WINUSER. H 식별자는 필수? IBM 호환 키보드

1 0 1 VK _ l 버튼 마우스 왼쪽 버튼

2 02 VK_RBUTTON 마우스 오른쪽 버튼 클릭

3 03 VK _ 취소 \ ctrl-break

4 04 VK _ 버튼 마우스 가운데 버튼

너는 영원히 키보드 정보로부터 이 마우스 키코드를 얻지 못할 것이다. 다음 장에서 볼 수 있듯이 마우스 메시지에서 얻을 수 있습니다. VK _ 취소 코드는 두 키를 동시에 누르는 가상 키 코드입니다 (Ctrl-Break). Windows 응용 프로그램에서는 일반적으로 이 키를 사용하지 않습니다.

표 6-3 의 키 (백스페이스, 탭, Enter, ESC 및 스페이스 바) 는 일반적으로 Windows 프로그램에서 사용됩니다. 그러나 Windows 는 일반적으로 키보드 메시지 대신 문자 메시지를 사용하여 이러한 키를 처리합니다.

표 6-3

10 진수 16 진수 WINUSER. H 식별자는 필수? IBM 호환 키보드

8 08 vk _ back \ 백스페이스

9 09 vk _ tab \ tab

12 0C VK_CLEAR Num 종료 시 숫자 키보드 잠금 5

130dvk _ return 캐리지 리턴 (또는 다른 것)

1610vk _ shift \ shift (또는 다른 것)

1711vk _ controlctrl (또는 다른 것)

18 12 VK _ 메뉴 \ alt (또는 다른)

19 VK _ 일시 중지 일시 중지

20 14 VK 수도 대문자 잠금

27 1B VK _ 탈출 ESC

32 20vk _ space _ 스페이스 바

또한 Windows 프로그램은 일반적으로 Shift, Ctrl 또는 Alt 키의 상태를 모니터링할 필요가 없습니다.

표 6-4 에 나열된 처음 8 개 코드는 가장 일반적으로 사용되는 가상 키 코드일 수 있으며 VK _ 삽입 및 VK _ 삭제도 있습니다.

표 6-4

10 진수 16 진수 WINUSER. H 식별자는 필수? IBM 호환 키보드

33 2 1 VK _ 이전 페이지

34 22 VK _ 다음 페이지

35 23 vk _ end \ end

36 24 VK 의 집

37 25 vk _ 왼쪽 왼쪽 화살표

38 26 vk _ 위쪽 화살표

39 27 vk _ 오른쪽 오른쪽 화살표

40 28 vk _ 아래쪽 화살표

4 1 29 VK _ 선택

42 2A VK _ 인쇄

43 2B VK _ 실행

44 2C VK _ 스냅샷 인쇄 화면

45 2D VK _ 삽입 \ 삽입

46 2E VK _ 삭제 삭제

47 2F VK _ 도와주세요

VK_PRIOR 및 VK_NEXT 와 같은 많은 이름은 키의 기호와는 달리 스크롤 막대의 인식된 단어와 일치하지 않습니다. Windows 응용 프로그램은 일반적으로 인쇄 화면 키를 무시합니다. 이 키에 응답하면 Windows 자체가 비디오 표시의 비트맵 사본을 클립보드에 저장합니다. 키보드가 VK _ 선택, VK _ 인쇄, VK _ 실행 및 VK _ 도움말을 제공하는 경우 이러한 키보드를 본 사람은 거의 없을 것입니다.

Windows 에는 기본 키보드의 문자와 숫자 키에 대한 가상 키 코드도 포함되어 있습니다 (숫자 키보드는 별도로 처리됨).

표 6-5

10 진수 16 진수 WINUSER. H 식별자는 필수? IBM 호환 키보드

48-57 30-39 없음 0 ~ 9 주 키보드에 있음

65-90 4 1-5A 없음 a ~ z

숫자와 문자의 가상 키 코드는 ASCII 코드입니다. Windows 프로그램은 이러한 가상 키를 거의 사용하지 않습니다. 실제로 프로그램은 ASCII 코드 문자의 문자 메시지를 사용합니다.

표 6-6 에 표시된 코드는 Microsoft Natural Keyboard 및 호환 키보드에서 생성됩니다.

표 6-6

10 진수 16 진수 WINUSER. H 식별자는 필수? IBM 호환 키보드

9 1 5B VK_LWIN 왼쪽 Windows 키

92 5C VK_RWIN 오른쪽 창 키

93 5D VK 응용 프로그램 키

Windows 는 VK_LWIN 및 VK_RWIN 키를 사용하여 시작 메뉴를 열거나 이전 버전의 작업 관리자를 시작합니다. 둘 다 Windows 로그인 또는 종료 (Microsoft Windows NT 에서만 유효) 또는 네트워크 로그인 또는 종료 (Windows for Applications) 에 사용할 수 있습니다. 응용 프로그램은 보조 정보를 표시하거나 바로 가기 키로 간주하여 응용 프로그램 키를 처리할 수 있습니다.

표 6-7 에 표시된 코드는 숫자 키패드의 키 (있는 경우) 에 사용됩니다.

표 6-7

10 진수 16 진수 WINUSER. H 식별자는 필수? IBM 호환 키보드

부팅 시 숫자 키패드의 96- 105 60-69 VK_ 숫자 키패드 0 ~ VK _ 숫자 키패드 9 숫자 잠금 0 ~ 9.

* 106AVK _ multiply 숫자 키패드에서

숫자 키패드의 107 6B VK _ ADD+

108 6C VK _ 분리기

109 6d vk _ 숫자 키패드에서 빼기-

1 106e VK _ 10 진수 키보드에 있습니다.

1116 fvk _ divide/

마지막으로 대부분의 키보드에는 12 기능 키가 있지만 Windows 는 10 만 있으면 24 비트 플래그가 있습니다. 또한 프로그램에서는 일반적으로 기능 키를 키보드 단축키로 사용하므로 일반적으로 표 6-8 에 표시된 키를 처리하지 않습니다.

표 6-8

10 진수 16 진수 WINUSER. H 식별자는 필수? IBM 호환 키보드

112-12170-79 vk _ f 1 끝 vk _

122-1357a-87vk _ f 1 1 ~ VK_F24 기능 키 f/kloc/

144 90 VK _ 디지털 잠금 장치

145 9 1 VK _ 스크롤 잠금 장치

또한 몇 가지 다른 가상 키 코드가 정의되어 있지만 비표준 키보드의 키 또는 호스트 터미널에서 일반적으로 사용되는 키에만 사용됩니다. 전체 목록은/platformsdk/user interface services/userinput/virtual-keycodes 를 참조하십시오.

가상 키 테이블

가상 키는 ASCII 코드 "1"-"9", "a"-"z" 에 해당합니다

Vkkeyscan () 함수는 해당 문자의 실제 값을 볼 수 있습니다. 매개변수는 문자입니다.

API 상수 실수 값 해석

VK_LBUTTON 1 마우스 왼쪽 버튼

VK_RBUTTON 2 마우스 오른쪽 버튼 클릭

VK _ 취소 3 Ctrl+Break

VK _ 버튼 4 마우스 가운데 버튼

VK_BACK 8 백스페이스

VK_TAB 9 TAB

VK_CLEAR 12 NUM 이 꺼져 있을 때 숫자 키패드 잠금 5?

VK_RETURN 13 캐리지 리턴

VK _ 근무조 16 근무조

VK _ 컨트롤 17 컨트롤

VK _ 메뉴 18 Alt

VK _ 일시 중지 19 일시 중지 휴식

VK 수도 20 대문자 잠금 장치

VK _ 탈출 27 ESC

VK_SPACE 32 스페이스 바

VK _ 처음 33 페이지 위로

VK _ 아래 34 페이지

VK _ 끝 35 종료

VK _ 홈 페이지 36 홈 페이지

VK _ 왼쪽 37 왼쪽 화살표

VK 화살표 _ 오른쪽 38

VK _ 위쪽 39 오른쪽 화살표

VK _ 아래쪽 40 아래쪽 화살표

VK_SELECT 4 1

VK _ 인쇄 42

VK _ 실행 43

VK _ 스냅샷 44 인쇄 화면

VK _ 삽입 45 삽입

VK _ 삭제 46 삭제

VK _ 도움말 47

Vk _ 0...9 48 ...57 기본 키보드 0...9

Vk _ a...z 65...90 주 키보드 a...z

VK_LWIN 9 1 좌승

VK_RWIN 92 우승

VK_APPS 93 단축 메뉴

예약 94 예약

VK _ 수면 95 수면?

디지털 키보드

키보드의 Vk _ numpad0.9 96. 105 0 ~ 9.

VK _ 키보드에106 을 곱합니다 *

VK _ 키보드에 107+ 추가

VK _ 구분자 108 구분자

VK _ 키보드에서109 빼기-

키보드의 VK _ 십진수 1 10.

Vk _ divide111/

VK _ 디지털 잠금 144 디지털 잠금 장치

Vk _ f1.. vk _ f24112 ..135f/kloc-0

미지정136 ..145 정의되지 않았습니다.

VK _ 스크롤 145 스크롤 잠금 장치

특정146 ..150 특수 용도

지정되지 않음151..159 정의되지 않았습니다.

VK_LSHIFT 160 왼쪽으로 이동 키

VK_RSHIFT 16 1 오른쪽 시프트 키

Vk _ l 컨트롤162 왼쪽 Ctrl 키

Vk _ r 컨트롤163 오른쪽 Ctrl 키

VK_LMENU 164 왼쪽 Alt 키

VK_RMENU 165 오른쪽 Alt 키

브라우저

VK _ 브라우저 _ 뒤로 A6( 166) 브라우저 뒤로 키

VK _ 브라우저 _ 앞으로 A7( 167) 브라우저 앞으로 키

VK 브라우저 새로 고침 A8( 168) 브라우저 새로 고침 키

VK _ 브라우저 _ 중지 A9( 169) 브라우저 중지 키

VK _ 브라우저 _ 검색 AA( 170) 브라우저 검색 키워드

VK _ 검색기 _ 즐겨찾기 AB( 17 1) 검색기 즐겨찾기 키

VK _ 브라우저 _ 홈페이지 AC( 172) 브라우저 시작 및 홈페이지 키

볼륨

VK _ 볼륨 _ 음소거 광고 볼륨 음소거 키

VK 볼륨 키

VK 볼륨 자동 키 올리기

매체

VK _ 미디어 _ 다음 _ 트랙 B0 다음 트랙 키

VK _ 미디어 _ 이전 _ 트랙 B 1 이전 트랙 키

VK _ 미디어 _ 중지 B2 미디어 중지 키

VK 미디어 재생 일시 중지 B3 재생 일시 중지 미디어 키

언어

VK_LAUNCH_MAIL B4 시작 메일 키

VK _ 시작 _ 미디어 _ B5 선택 미디어 키 선택

VK_LAUNCH_APP 1 B6 응용 프로그램 시작 1 키

VK _ 시작 _ 응용 프로그램 2 B7 응용 프로그램 시작 2 키

강조하다

VK_OEM_ 1 186 세미콜론

VK_OEM_PLUS 187 같음 기호

VK _ OEM _ 쉼표 188

VK_OEM_MINUS 189 빼기

VK_OEM_PERIOD 190 기간

VK_OEM_2 19 1/

VK_OEM_3 192 ~

예약 193...2 15 예약 코드

할당되지 않음 2 16...2 18 지정되지 않았습니다.

VK_OEM_4 2 19 [

VK_OEM_5 220 \

VK_OEM_6 22 1]

VK_OEM_7 222 인용 부호

VK_OEM_8 223

VK 수신자 HF6(246)

VK_CRSEL HF7(247)

VK _ 엑셀 HF8(248)

VK_EREOF HF9(249)

VK _ HFA 전투 (2 부) 250

VK _ 줌 HFB(25 1)

VK 명 HFC(252)

VK_PA 1 HFD(253)

上篇: JD.com에서 세탁기 구매 청구서를 저장하는 방법 下篇: 오늘 밤 컴퓨터 구성에 대해 왜 두 개의 메모리가 필요합니까? 솔리드 스테이트 드라이브는 가격 대비 성능을 위해 충분하지 않습니다.
관련 내용