안녕하세요.
660c 유저입니다.
fn + backspace -> delete
fn + insert -> home
fn + delete -> end
다음과 같이 매핑 하려고 하는데 SharpKey나 KeyTweak경우
fn + 다른 키 처럼 두 개의 키를 인식하지를 못하네요.
(제가 못하는 건지)
혹시 방법이 있을까요?
키보드
fn + 다른 키에 특정키를 매핑하기
이전 댓글 5
http://www.autohotkey.com/board/topic/27841-remapping-the-fn-key-a-solution/ 여기 보는 중
안녕하세요. 루팡3세님.
제가 알기로 fn키를 키매핑 프로그램으로 매핑하는 것은 불가능합니다.
댓글로 주신 링크에 가보았으나 삭제가 되어 내용을 확인할 수 없습니다만,
잘못된 지식에 근거한 링크가 아닌가 의심됩니다.
이유는,
키매핑 프로그램의 원리가
OS 상태에서 인식되는 키값을 다른 키값으로 매핑하는 데 있기 때문입니다.
예를 들면,
del 키를 입력하면 특정 스캔코드 값이 나오는데,
이 스캔코드 값을 backspace의 스캔코드 값으로 매핑해주면,
del 키 입력시 backspace 처럼 작동하게 됩니다.
문제는,
fn키는 특정 스캔코드값을 발생시키지 않고,
특정 키와 같이 눌렀을 때 특정 스캔코드값 하나 만을 발생시킵니다.
즉, fn키 단독으로 스캔코드 값이 발생하지 않습니다.
따라서 fn키를 키매핑하는 것은 불가능합니다.
660c를 통해 예를 들어보겠습니다.
backspace키를 눌렀을 때 backspace키의 스캔코드 값이 발생합니다.
이 값을 임의조작하여 스캔코드 값을 발생시키도록 변경이 가능합니다.
ctrl + backspace를 누르면,
ctrl의 스캔코드 값과 backspace의 스캔코드 값이 두 개가 발생하여
이 두 개의 스캔코드 값을 캐치한 후 하나의 스캔코드 값으로 매핑 또한 가능합니다.
그러나
fn + backspce를 누르면, backspace의 스캔코드 값만 발생시킬 뿐
fn키의 스캔코드 값과 backspace 스캔코드 값 2개가 발생되는 것이 아니어서
결국 backspace 하나의 키만 키매핑 시키는 것과 동일한 효과가 발생됩니다.
원래 fn키는 숨겨진 레이어의 키를 드러나도록 하는 역할만 할 뿐
실제로 존재하는 키가 아닙니다. (OS 상태에서 존재하지 않는다라는 의미입니다.)
fn키의 역할은 이미 펌웨어 단계에서 결정되는 것이기 때문에 (즉, 하드웨어 단계)
OS 상에서 프로그램을 통해 이 부분을 변경시키는 것은 불가능합니다.
헷갈리는 원인이 바로 아래 부분 때문입니다.
660c에서 fn + < 를 누르면 end키로 작동합니다.
fn + < 를 눌렀을 때,
fn의 스캔코드 값과
와 우문현답이네요 ㄷㄷ 감사합니다 게토님 덕분에 잘 이해하였습니다.
fn키가 스캔코드 값이 없어서 아쉬웠는데
링크에서는 특정 dll을 추가하면 fn키의 스캔 코드 값을 가져올 수 있고
그럼 AutoHotKey를 이용해서 매핑시킬 수 있다는 것 같습니다.
근데 dll도 없고 글쓴이도 깜깜무소식 ㅜㅡ
좀 더 찾아보니 위에서 설명한 대로 해서 됐다고 AutoHotKey script도 올려놓은 분들도 있고 해서
일단은 fn키 인식으로 찾아보고 있었습니다.
fn키가 맥 키보드나 노트북 키보드에도 있어서 자료는 많은 것 같은데
저도 계속 알아보겠습니다.
다시 한번 힘들게 쓰신 리플에 감사드립니다.
http://www.autohotkey.com/board/topic/282-fn-key-on-a-notebook/http://www.autohotkey.com/board/topic/27841-remapping-the-fn-key-a-solution/
일단 저는 이렇게 fn키 매핑으로 찾아보고 있습니다.
fn키의 경우 일반 노트북이나 맥에서도 많이 사용되고 있어서 자료량 자체는 많더군요.
FN키가 하드웨어 레이어에서 동작하는 거라 불가능 할 것 같다는 결론을 내렸습니다.
DLLcall이니 뭐니 어차피 소프트웨어인데 하드웨어에서 신호가 끝나는 키에 소프트웨어로 인식한다니 말도 안되는 것 같습니다
그냥 적응해야겠네요.. ㅜㅡ