terminal.app의 명령 줄에서 캡 잠금이 켜져 있는지 여부를 알리기 위해 시스템을 쿼리하는 방법이 있습니까?
답변
Macscripter에 Stefenk가 작성한 훌륭한 명령 행 코드가 있습니다.
Stefen의 코드를 사용하면 cmd, 옵션, 제어, Shift 및 Caps Lock을 감지 할 수 있습니다.
그의 직책에서 그는 코드와 다운로드 zip을 제공합니다.
기초 프로젝트를 사용하여 Xcode에서 다운로드하거나 직접 빌드 할 수 있습니다.
나는 엘 캐피 탄에서 두 가지 방법을 테스트했으며 둘 다 작동합니다.
Xcode.app에서 직접 빌드하려는 경우 코드는 다음과 같습니다.
#import <Carbon/Carbon.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
unsigned int modifiers = GetCurrentKeyModifiers();
if (argc == 1)
printf("%d\n", modifiers);
else {
int i, result = 1;
for (i = 1; i < argc; ++i) {
if (0 == strcmp(argv[i], "shift"))
result = result && (modifiers & shiftKey);
else if (0 == strcmp(argv[i], "option"))
result = result && (modifiers & optionKey);
else if (0 == strcmp(argv[i], "cmd"))
result = result && (modifiers & cmdKey);
else if (0 == strcmp(argv[i], "control"))
result = result && (modifiers & controlKey);
else if (0 == strcmp(argv[i], "capslock"))
result = result && (modifiers & alphaLock);
}
printf("%d\n", result);
}
}
return 0;
}
———- (업데이트->
Terminal.app에서 컴파일하려면
코드를 일반 텍스트 파일에 넣습니다. 방금 TextEdit.app와 일반 텍스트 문서를 사용했습니다.
파일과 같은 디렉토리에 CD를 넣으십시오. 확장자가 .m인지 확인하십시오 (.c도 괜찮습니다)
그런 다음 실행하십시오.
gcc -framework Carbon CheckModKeys.m -o CheckModKeys
CheckModKeys.m은 파일입니다.
CheckModKeys는 출력 될 앱의 이름입니다.
<-)
캡 잠금을 감지하려면 명령이 다음과 같습니다.
/Users/UserName/MyFolder/CheckModKeys capslock
1 또는 0이 반환됩니다.
에 1
꺼짐 0
모든 크레딧은 Stefen으로갑니다. 나는 그가 2009 년에이 방법을 다시 게시 한 것을 기억했다. 그리고 그것은 오늘날에도 여전히 작동합니다 ..
답변
당신이있는 경우 XQuartz가 실행 중 하나를 설치하거나 실행 상관하지 않습니다, 당신은 실행할 수 있습니다 :xset -q
Keyboard Control:
auto repeat: on key click percent: 0 LED mask: 00000000
XKB indicators:
00: Caps Lock: off 01: Num Lock: off 02: Shift Lock: off
03: Group 2: off 04: Mouse Keys: off 05: Scroll Lock: off