Python 모듈 "keyboardleds"를 사용하여 Caps Lock 상태를 확인하는 방법은 무엇입니까?

Python 모듈 "keyboardleds"를 사용하여 Caps Lock 상태를 확인하는 방법은 무엇입니까?
  1. 내 시스템에서 키보드를 직접 확인하여 Caps Lock 상태(켜졌는지 꺼져 있는지)를 확인하고 싶습니다. 많은 검색 끝에 "keyboardleds" 모듈을 사용하여 Python에서 이 작업을 수행할 수 있다는 것을 알게 되었습니다.

    저는 파이썬을 잘 모르지만,그래서 저의 주요 요청은 Caps Lock의 상태를 알려주기 위해 Python 스크립트에서 Keyboardleds 모듈을 사용하는 방법을 알려주실 수 있습니까?내 시스템의 Python 버전은 2.7.3rc2입니다.

  2. "keyboardleds"에 관해 제가 찾은 정보는 제가 이해하기에는 너무 기술적이었습니다. 나도 이해하지 못하는 복잡한 Python 프로그래밍을 사용하여 키보드를 사용하는 방법에 대한 예도 발견했습니다. 또한 내가 본 예에서는 키보드를 다음 중 하나로 사용합니다.다른내가 원하는 목적이 아닌 목적입니다(예: Caps Lock 상태 확인).

    예제 스크립트 시작 부분에 있는 "import" 명령이 무엇을 의미하는지, 이 명령이 모두 필요한지조차 모르겠습니다.

    어떤 Python 명령어를 사용해야 하는지, 어떤 세부사항을 넣었는지 알려주시면 정말 감사하겠습니다.

  3. Caps Lock이 꺼져 있으면 종료 상태 0(true)을 제공하고 Caps Lock이 켜져 있으면 종료 상태 1(false)을 제공하는 Python 스크립트가 필요합니다.

    Python 스크립트의 이름이 "capslockstate"라고 가정합니다. 그런 다음 다음과 같이 bash 스크립트에서 사용합니다.

     if capslockstate
     then
        <perform an action based on the fact that Caps Lock is off>
     else
        <perform an action based on the fact that Caps Lock is on>
     fi
    
  4. 나는 중요한 것은 다음과 같다고 믿는다:

    키보드 접근과 관련하여 제가 찾은 정보는 /dev/console, /dev/input/event*및 를 사용하는 것에 관한 것입니다 /dev/input/by-path/*-event-kbd. 내 시스템에는 세 가지가 모두 존재합니다. 후자의 두 경우에는 내 시스템에 다음이 있습니다.

     /dev/input/event0 through to /dev/input/event9.
    
     /dev/input/by-path/platform-i8042-serio-0-event-kbd   
     ### ie only ^this^ one item exists
    

    "바이패스"는실제디렉터리 이름.

    위의 2개 "/dev/input/..." 엔터티 중 하나가 내가 사용해야 하는 엔터티라고 생각합니다 /dev/console. 하지만 그 내용을 자세히 이해하지는 못합니다.

  5. 키보드에 대한 정보를 찾은 웹사이트는 다음과 같습니다.

    1. 키보드를 사용할 수 있는 첫 번째 웹사이트(예제는 나에게 너무 복잡함):

      Python을 사용하여 Linux에서 키보드 LED에 액세스하는 다른 방법

      이 사이트에서 제가 특히 관심을 갖는 부분은 "프로그램 [keyboardleds]가 키보드에 직접 액세스를 제공합니다"라는 설명입니다.

    2. 키보드에 관한 공식 문서는 다음과 같습니다(이해하기에는 너무 복잡함).

      python-keyboardleds 0.3.3 문서

    3. Keyboardleds 작성자의 웹사이트:

      python-keyboardleds — Jakub Wilk의 소프트웨어

답변1

나는 다음 제품을 사용하여 행운을 누렸습니다.

from win32con import VK_CAPITAL
if GetKeyState(VK_CAPITAL) == 1:
    print ("CAPS Lock is on.")
elif GetKeyState(VK_CAPITAL) == 0:
    print ("CAPS Lock is off.")

이것은 Python3이 설치된 Windows 시스템에 있으므로 Linux에서도 작동할지 100% 확신할 수는 없지만 Windows에서 이 작업을 수행해야 하는 사람들에게는 이 경우에 작동한다는 점에 주목할 가치가 있습니다. 확실히 작동합니다. 나 자신이야.

랜디

관련 정보