#include <windows.h>
int main() {
if ( !GetKeyState(VK_CAPITAL) & 1 ) {
printf("caps off");
}
else
printf("caps on");
return 0;
}
ただし、ウィンドウのみに限定されます
Linuxでgccを使用してこれを行う方法は?
何が& 1
入っていGetKeyState(VK_CAPITAL) & 1
ますか?
X11 ベースのデスクトップの最も一般的なケース:
#include <stdio.h>
#include <X11/XKBlib.h>
int main() {
Display * d = XOpenDisplay((char*)0);
if (d) {
unsigned n;
XkbGetIndicatorState(d, XkbUseCoreKbd, &n);
printf((n & 1)?"caps on\n":"caps off\n");
}
}
X11 開発ヘッダーがあることを確認し、次のようにコンパイルします。
$ gcc -lX11 test.c -o test
デスクトップのコンソール ウィンドウから実行します。
$ ./test
caps off
$ ./test
caps on