키보드 가상 키란 무엇입니까?
가상이란 현실 세계가 아닌 머리 속에 존재해야 하는 것을 의미하며, 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)