
내 AutoHotKey 스크립트에서 사용자 입력을 고정하고 싶습니다. 즉, 사용자의 입력이 활성 프로그램에 전파되지 않고 고정이 해제되어 사용자가 입력한 모든 입력이 프로그램에 전달되도록 합니다.
즉, 내가 정지하면 사용자가 "xyz"를 입력하지만 이것은~ 아니다활성 프로그램에 전달된 다음 고정을 해제하면 "xyz" 키 입력이 프로그램에 전달된 다음 모든 것이 정상으로 돌아가고 사용자가 다시 입력할 수 있으며 활성 프로그램으로 이동합니다.
이는 를 사용하여 프로그램에 많은 텍스트를 입력하는 동안 ControlSend
사용자의 입력이 방해되지 않도록 하기 위한 것입니다.
가능한? 어떻게?
답변1
하나의 SendInput을 사용하여 모든 텍스트를 보낼 수 있다면 AutoHotkey가 문제를 해결해 줄 것입니다. 오토핫키에서보내다선적 서류 비치,
SendInput 및 SendPlay [...]는 전송 중 물리적 키보드 또는 마우스 활동을 버퍼링하여 사용자의 키 입력이 전송되는 키 입력과 겹치는 것을 방지합니다.
고정된 동안 사용자 입력을 잃어도 괜찮다면(버퍼링하고 나중에 보내는 대신) 다음을 사용할 수 있습니다.입력 차단. 같은 것
BlockInput On
; Send desired text here
BlockInput Off
그러나 BlockInput 문서에 따르면 키가 이미 눌려져 있을 때 시작하면 "키 업" 이벤트가 차단되어 키가 눌려진 것처럼 보일 수 있습니다. 따라서 사용 시기에 따라 먼저 다음을 사용하여 키가 해제될 때까지 기다려야 할 수도 있습니다.키대기.
답변2
입력 명령을 사용하십시오.
http://autohotkey.free.fr/docs/commands/Input.htm
편집하다
당신은 말했다:
내 AutoHotKey 스크립트에서 사용자 입력을 고정하고 싶습니다. 즉, 사용자의 입력이 활성 프로그램에 전파되지 않고 고정이 해제되어 사용자가 입력한 모든 입력이 프로그램에 전달되도록 합니다.
즉, 정지하면 사용자가 "xyz"를 입력하지만 이는 활성 프로그램에 전달되지 않습니다. 그런 다음 정지를 해제하면 "xyz" 키 입력이 프로그램에 전달되고 모든 것이 정상으로 돌아가 사용자가 입력할 수 있습니다. 다시 누르면 활성 프로그램으로 이동합니다.
입력 명령은 다음을 수행합니다.
; 사용자가 아무 키나 누를 때까지 기다립니다. 수정자 키, 기능 키, 화살표 키와 같이 눈에 보이지 않는 문자를 생성하는 키도 감지되도록 종료 키로 나열됩니다.
Input, SingleKey, L1,
{LControl}{RControl}{LAlt}{RAlt}{LShift}{RShift}{LWin}{RWin}{F1}{F2}{F3}{F4}{F5}{F6}{F7}{F8}{F9}{F10}{F11}{F12}{Left}{Right}{Up}{Down}{Home}{End}{PgUp}{PgDn}{Del}{Ins}{BS}{Capslock}{Numlock}{PrintScreen}{Pause}
여러 키에 대해 이를 반복하거나 키 문자열을 인수로 사용할 수 있습니다.