C++을 사용하여 Linux (OpenSuse)에서 Caps Lock, Scroll Lock 및 Num Lock을 켜고 끌 수있는 간단한 방법이 있습니까? 파일을 사용해야합니까? 일부 장치 시뮬레이션 키 입력을 제어하려고합니다. 이 솔루션은 바로 키보드의 주도에 설정 때문에이 솔루션을 참조 funcion 너무 잠 그려면 모자를 활성화해야하는 경우어떻게하면 Caps Lock, Scroll Lock, Num Lock 키를 리눅스에서 프로그래밍 방식으로 켜고 끌 수 있습니까?
답변
솔루션 1
, 머리를 이동하십시오 2.
// Linux header, no portable source
#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc, char* argv[]) {
int fd_console = open("/dev/console", O_WRONLY);
if (fd_console == -1) {
std::cerr << "Error opening console file descriptor\n";
exit(-1);
}
// turn on caps lock
ioctl(fd_console, 0x4B32, 0x04);
// turn on num block
ioctl(fd_console, 0x4B32, 0x02);
// turn off
ioctl(fd_console, 0x4B32, 0x0);
close(fd_console);
return 0;
}
기억 /dev/console
파일에 쓰기 위해 수퍼 유저 권한으로 프로그램을 시작해야합니다.
편집 2
이 솔루션은 X11 윈도우 시스템 관리자와 함께 작동
솔루션 (리눅스에서 거의 표준이다).
// X11 library and testing extensions
#include <X11/Xlib.h>
#include <X11/keysym.h>
#include <X11/extensions/XTest.h>
int main(int argc, char *argv[]) {
// Get the root display.
Display* display = XOpenDisplay(NULL);
// Get the keycode for XK_Caps_Lock keysymbol
unsigned int keycode = XKeysymToKeycode(display, XK_Caps_Lock);
// Simulate Press
XTestFakeKeyEvent(display, keycode, True, CurrentTime);
XFlush(display);
// Simulate Release
XTestFakeKeyEvent(display, keycode, False, CurrentTime);
XFlush(display);
return 0;
}
참고 : 더 키 - 기호가 header에서 찾을 수 있습니다.
수퍼 유저 권한은 Windows처럼 자주 바보가됩니다. 사소하면서도 중요한 일을하기 위해 무엇인가 허락해야 할 때 보안의 반대입니다. 이를 수행 할 수있는 데몬 프로세스를 설계하고 비 특권 프로세스에 API를 제공 할 수 있습니까? –
[xdotool] (https://github.com/jordansissel/xdotool)은 어떻습니까? –
Windows에 아날로그 KDSETLED/KDGETLED가 있습니까? – MaysSpirit
- 1. Caps Lock, Scroll Lock 및 Num Lock을 프로그래밍 방식으로 켜기/끄기
- 2. Caps Lock LED 끄기
- 3. 어떻게해야합니까? Caps lock 키를 켜거나 끕니다.
- 4. Xlib의 CAPS LOCK 프레스 시뮬레이션
- 5. Num, Caps 및 Scroll Lock 표시등을 켜거나 끌 수있는 방법이 있습니까?
- 6. 다른 언어에 대해 "Caps lock"키를 활성화하십시오.
- 7. PowerShell : "Num Lock"을 켜거나 끕니다.
- 8. HTML5에서 Caps lock detection 포함
- 9. Windows에서 Caps Lock 키를 프로그래밍 방식으로 사용하지 않도록 설정할 수 있습니까?
- 10. android 어떻게 프로그래밍 방식으로 caps lock 키를 활성화 할 수 있습니까?
- 11. 암호 제어로 Caps Lock 경고를 비활성화하려면 어떻게합니까?
- 12. 어떻게 시스템의 caps lock 알림을 비활성화 하시겠습니까?
- 13. Google Analytics로 Caps Lock 사용자를 어떻게 추적합니까?
- 14. 비밀번호 입력란에서 caps lock 표시기를 제거하십시오.
- 15. Java - 양식 포커스가있는 Caps Lock 상태가 발생했습니다.
- 16. Mono에서 Num/Caps/Scroll-lock 상태 가져 오기 및 설정 C#
- 17. vb.net에서 caps lock 키를 눌렀을 때 체크 박스를 확인하는 방법
- 18. Powershell에 lock 문이 있습니까?
- 19. Scroll Lock 버튼을 더 이상 사용하지 않습니까?
- 20. OS X에서 CGEventCreateKeyboardEvent로 Caps Lock 키 입력을 시뮬레이트하는 방법
- 21. IOS SDK에서 Caps Lock (Shift 키를 누른 상태) 키 상태를 프로그래밍 방식으로 가져 오는 방법은 무엇입니까?
- 22. 내가 켤 수있는 방법/오프 뚜껑 잠금, 스크롤 잠금, 프로그램 방식 Num Lock 키 여기에
- 23. ConcurrentHashMaps 및 Lock
- 24. jQuery Sortable lock item
- 25. 프로그래밍 방식으로 WiFi를 켜고 끌 수 있습니까?
- 26. SML의 mutex/lock/semaphore
- 27. MySQL + MyISAM의 "System lock"
- 28. iOS Lock event delegate?
- 29. Android contentprovider lock
- 30. 동기화 primitive "lock once"
[This (http://stackoverflow.com/questions/2171408/how-to-change-caps-lock-status-without-key-press) 질문은 파이썬에 관한 것이지만 본질적으로 동일합니다. 언어 적으로 다소 차이가 있습니다. 나는 그것이 POSIX인지 또는 다른 유닉스에 의해 지원되는지 전혀 모른다. – Downvoter