입력을 조건부로 차단하는 Windows 애플리케이션을 어떻게 만들겠습니까?

StackOverflow https://stackoverflow.com/questions/1619784

  •  06-07-2019
  •  | 
  •  

문제

당신은 들었을 것입니다 Pawsense, "Zlxkkkkkkkkk"와 같은 키보드 타이핑 넌센스 입력에 고양이 나 다른 동물이 있다고 생각할 때 키 스트로크가 입력되는 것을 방지하는 Windows 전용 유틸리티. 여가 시간에 재미있는 프로젝트처럼 보이지만 구현에 대한 세부 사항에 대해 궁금했습니다.

나는 하드 코딩 된 휴리스틱 또는 일종의 패턴 인식 알고리즘 (이전에 노출되어 편안하다고 느끼는 패턴 인식 알고리즘을 사용하여 패턴 인식 부분을 수행 할 수 있다고 생각합니다. 내 질문은 시스템 프로그래밍 측면과 입력을 차단하는 방법에 대한 논리에 관한 것입니다.

고양이 타이핑을 감지하는 경우 응용 프로그램에 입력을 관찰하고 도전을 제시해야합니다. 최근 키 스트로크의 버퍼를 보관하고 고양이 타이핑이 아닌 경우에만 통과시겠습니까? 또는 고양이 입력이 발생했다면 입력을 차단하기 전에 적은 숫자 만 허용 하시겠습니까? 사용하려는 실제 논리는 무엇입니까?

C#에서 입력을 차단하는 실제 메커니즘은이 사이트에 대한 다른 질문이 있습니다. 내 질문은 반복적으로 고양이 타이핑을 감지하고 차단하는 데 사용하는 논리입니다.

도움이 되었습니까?

해결책

키보드에 고양이가 있다고 생각할 때까지 기다린 다음 버퍼가 문제가 될 수 있으므로 입력을 차단합니다.

예를 들어, 입력하고 창문을 빠르게 전환하는 경우 입력을 입력하면 키 스트로크가 어디에 있어야하는지 어떻게 결정합니까?

필요한만큼 간단하게 유지하십시오.

다른 팁

당신은 a를 소개해야합니다 Win32 시스템 전체 후크. 이것 MSDN 기사 이 기본 사항을 다룹니다 (주의력은 응용 프로그램 또는 스레드 레벨 후크 및 시스템 전체 후크를 모두 지정합니다).

이해되면 필요에 따라 여러 wm_keyxxxx 메시지 인 WM_Keyup (WM_Keyup)의 여러 키보드 관련 메시지를 포착해야합니다).

그런 다음 키 스트로크가 유효한지 또는 횡설수설인지 여부를 결정하는 논리를 소개하고 메시지를 통과하여 (따라서 초점이 맞는 응용 프로그램으로 넘어갈 수 있음) 무시하십시오.

이것에 대해 아무것도 모르면, 나는 키가 얼마나 긴 키가 눌렀는지, 실제로 어떤 키를 누르는지에 근거하여 시작하여 동물이 단순히 하나의 키를 누르고 매우 빨리 풀어주지 않을 것이라고 생각합니다. 그러나 일련의 키에서 일시 중지 할 가능성이 높습니다.

따라서 단순히 키 프레스를 시간에 할 수 있다면 효과가 있다고 생각합니다.

부하를 생각합니다. 나는 다음과 같은 것과 같은 것으로 시작합니다.

  1. 2 분 동안 사용자 활동이 없을 때까지 기다리십시오.
  2. 앱을 시작하십시오
  3. 키보드 히트를 듣습니다
  4. 사전에 존재하는 경우 입력 된 키 일치
  5. 6 ~ 7 개 후에 키패드를 차단하십시오.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top