2010-11-01 3 views
5

"Shift", "Alt"및 "Control"이라는 개념은 OS API를 통해 바로 키보드 자체에서 하드 코딩되었습니다. 때로는 Windows 키가 수정 자로 사용되는 것을 볼 수 있지만 "실제"수정 자 키로 등록하지 않는 것 같습니다. 키보드의 다른 키보다 많을 수 있습니다.Windows에 새로운 수정 자 키를 추가하려면 어떻게 될까요?

하지만 수정 자 키를 추가 할 수 있습니까? 어쩌면 우주선 생도 키보드를 다시 가져 오기위한 거칠고 미친 노력으로? 물리적으로 수정 된 키보드를 제외하고 (또는 사용하지 않은 키를 다시 매핑하는 것만 제외하면) 새로운 드라이버가 필요합니까? 새로운 API 호출? 운영 체제의 완전한 재 작성?

이런 종류의 일은 Windows보다 오픈 소스 운영체제에서 훨씬 더 쉬울 것이라고 생각합니다. 그렇습니까?

답변

3

글쎄, 키보드와 마우스에 대한 표준을 갖는 것이 이점입니다. 그것은 특별한 드라이버 나 운영체제 패치 없이도 일을 "일"하게 만든다. 그러나 키보드와 마우스는 표준화되어 있어야만 "그냥 작동"할 수 있다는 것을 의미합니다.

키보드에 추가 키를 추가하려는 경우 - 수정 자 키이든 아니든 - 어떻게 든 유용하게 만들어야합니다. 즉, 응용 프로그램이이를 인식하고 있어야하고 이 키의 상태를 통지받습니다. 다행스럽게도 Windows 및 기타 운영 체제의 오픈 소스 여부에 관계없이 확장형이며 표준 메커니즘 인 드라이버을 제공합니다.

간단히 말해서 표준 키보드의 표준 기능을 확장하는 드라이버를 제공해야합니다. 19 개의 특수 버튼과 3 개의 스크롤 기능이있는 고급 마우스 중 하나를 구입 한 경우 드라이버가 필요합니다. 표준 두 개 또는 세 개의 버튼과 하나의 스크롤 휠 대신 휠을 사용하십시오.

마지막으로 특수 키보드를 인식하는 응용 프로그램이 필요합니다. 어째서 응용 프로그램이 초능력을 모르고 있었다면이 modded-keyboard를 사용하면 어떤 용도로 사용할 수 있습니까? 특수 키보드로 할 수있는 유일한 방법은 특수 수정자를 통합하는 바로 가기 키를 만드는 것입니다.

0

Windows W32 API는 Windows 012_을 정의했습니다. 그것은 8 비트이고 256 값을 제공하며 테이블에 약간의 간격이 있습니다.

WM_KEYDOWN message은이 코드에서 작동합니다.

현대 키보드는 최대 6 개의 동시 키를 감지 할 수 있지만 알고 있어야하는 N-Key RolloverKey Ghosting 문제가 있습니다.

.Net API는 수정 자로 Alt/Shift/Control 만 표시합니다.

한마디로 말하자면 현대 키보드가 키를 누르는 것 외에 5 개의 동시 수식어를 허용하는 경우에도 Microsoft에서 제공하는 많은 핵심 API가 Alt/Shift/Control에서 수정 자로 릴레이됩니다.