관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

Input 유저의 입력을 횡령해 취득한다(NT계 전용) 본문

AUTOHOTKEY/레퍼런스

Input 유저의 입력을 횡령해 취득한다(NT계 전용)

님투 2007. 11. 5. 14:41
반응형

Input

유저의 입력을 횡령해 취득한다(NT계 전용)

Input [, OutputVar, Options, EndKeys, MatchList]

Parameters


인수명 설명

OutputVar

입력된 텍스트를 격납하는 변수명.
Enter키는LF(`n)(으)로서 기록되어 그 다른 비문자 키는 무시된다.
Options 이하의 옵션을 스페이스에서 단락지어 열거한다.
B
백 스페이스가 밀려도 입력된 문자를 삭제하지 않는다
C
MatchList그리고 대문자 소문자를 구별한다
I
AutoHotkey하지만 Send커멘드등에서 생성한 키 입력을 무시한다
M
Ctrl+A(으)로부터Ctrl+Z까지의 단축 키를 받아 들이도록(듯이) 한다.
이러한 입력이 이루어졌을 경우,OutputVar하1(으)로부터26까지의ASCII문자가 된다.
「Transform, CtrlC, Chr, 3」(와)과 같이 해 변수에 같은ASCII문자를 격납해, 「if OutputVar = %CtrlC%」(와)과 같이 해 각 단축 키가 밀렸는지를 판정한다.
Ln
n에 입력을 받아들이는 문자수의 상한을 지정한다.(례:L5)
이 문자수를 넘으면, 커멘드는 종료해,ErrorLevel(은)는 「Max」(이)가 된다.
생략시는16383문자까지 받아들인다.
Tn
n에 입력을 기다리는 최대의 초수를 지정한다.소수도 사용 가능.(례:T5)
이 초수이상이 경과하면, 커멘드는 종료해,ErrorLevel(은)는 「Timeout」(이)가 된다.
타임 아웃 해도, 그때까지 입력된 문자열은OutputVar에 격납된다.
V
입력을 빼앗고 시스템으로부터 숨겨 버리지 않는다.
통상은, 입력을 받아들이고 있는 동안은, 입력된 키는 다른 어플리케이션에는 보내지지 않지만, 이 옵션을 지정하면, 보통으로 다른 어플리케이션에 보내진다.
*
입력 문자열에 대해, 부분 일치로MatchList(와)과의 일치 판정을 실시한다.통상은 완전 일치.
예를 들어,MatchList에 「age」(을)를 지정했을 경우, 통상은 「age」라고 입력하면 성냥이 되지만, 「*」옵션을 붙이면 「sage」라고 입력해도 성냥 하게 된다.
OutputVar에는 입력된 문자열 모든 것이 격납된다.
EndKeys 입력을 종료시키는 키.
이 키가 밀리면, 커멘드의 실행이 종료해,ErrorLevel에 「Endkey:밀린 키명」이 대입된다.
Send커멘드로 사용하는 포맷으로 문자나 특수 키명을 열거한다.
Ctrl키등의 수식 키를 지정할 때는, 「{LCtrl}」(와)과 같이 좌우를 명시 지정할 필요가 있다.
MatchList ,」(으)로 단락지어 문자열을 열거한다.
입력 내용이 여기에 열거한 것에 일치했을 경우, 커멘드는 종료해ErrorLevel하지만 「Match」(이)가 된다.
콤마 단락이지만, 인수의 단락과는 취급이 달라, 콤마의 전후의 공백 문자 등은, 문자열의 일부로 간주해진다.
변수의 내용은 전개되고 나서, 콤마로 분할된다.리스트가 길어지는 경우는, 변수에 격납해 두면 좋다.
문자열중에서 콤마를 나타내려면 ,2개의 콤마의 연속(,,)(을)를 사용한다.

ErrorLevel


1 or 0

모든 인수를 생략 해 실행했을 경우, 세치기에 의해 정지중의 스렛드로 실행되고 있다Input커멘드를 종료시키면 「0」, 정지시킨다Input커멘드가 없었으면 「1」(이)가 된다.
NewInput 끼어들었다 스렛드하지만 새롭다Input커멘드를 실행했다
Max 입력이 옵션의 「L」(으)로 지정한 길이를 넘어MatchList그리고 지정한 문자열에는 성냥 하지 않았다
Timeout 옵션의 「T」(으)로 지정한 타임 아웃 시간이 경과했다
Match MatchList그리고 지정한 문자열에 매치했다
EndKey:name Endkeys에 열거된 종료 키가 밀렸을 경우.
Endkey:」에 이어 그 키명이 격납된다.
예를 들면, 「Endkey:Enter」.

Remarks

이 커멘드를 사용하면, 키보드에 의한 입력을 감시하고, 입력된 텍스트를OutputVar에 격납할 수 있다.
입력의 감시는Endkeys그리고 지정된 키가 밀리는지,L옵션으로 지정한 문자수에 이르는지,T옵션으로 지정한 시간이 경과하는지,MatchList그리고 지정되어 있는 문자열에 입력이 일치하면 종료해, 종료 이유가ErrorLevel변수에 격납된다.

입력을 기다리고 있는 동안은, hot key나 메뉴등에서 새로운 스렛드하지만 끼어드는 것이 가능.
끼어들어 온 스렛드로 새롭게Input커멘드가 실행되면, 끼어들어졌다Input커멘드는ErrorLevel하지만 「NewInput」가 되어 종료한다.
Input커멘드를 인수 없이 실행하면, 기존의Input커멘드의 종료만을 한다.

이 커멘드가 최초로 실행되었을 때, 키보드 훅하지만 유효화 된다.
그 이후는, 스크립트가 상주 상태(이)가 되어, ExitApp커멘드를 실행할 때까지 종료하지 않게 된다.

핫 스트링의 기능을 사용하면, 간단하게 특정의 키스트로크(keystroke)에 대해서 동작을 할당할 수 있다.


Related

KeyWait, InputBox, #InstallKeybdHook, Threads, StringCaseSense


Example(s)

; Wait for the user to press any key.  Keys that produce no visible character,
; such as the modifier keys, function keys, and arrow keys, are listed as end keys
; so that they will be detected too.
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}
; This is a working hotkey example. Since the hotkey has the tilde (~) ~[:: Input, UserInput, V T5 L4 C, {enter}.{esc}{tab}, btw,otoh,fl,ahk,ca if ErrorLevel = Max { MsgBox, You entered "%UserInput%", which is the maximum length of text. return } if ErrorLevel = Timeout { MsgBox, You entered "%UserInput%" at which time the input timed out. return } if ErrorLevel = NewInput return IfInString, ErrorLevel, EndKey: { MsgBox, You entered "%UserInput%" and terminated the input with %ErrorLevel%. return } ; Otherwise, a match was found. SetKeyDelay, -1 ; Most editors can handle the fastest speed. if UserInput = btw Send, {backspace 4}by the way else if UserInput = otoh Send, {backspace 5}on the other hand else if UserInput = fl Send, {backspace 3}Florida else if UserInput = ca Send, {backspace 3}California else if UserInput = ahk Run, www.autohotkey.com return
반응형
Comments