AutoHotKey(오토핫키) 설명서 #HotkeyModifierTimeout

Posted by 발전소장
2014. 8. 13. 18:19 AutoHotKey/Commands

#HotkeyModifierTimeout

키보드 훅 없이 hot key중에서Send커멘드를 사용했을 때에 수식 키 상태를 복원하지 않게 되는 타임 아웃 시간을 설정

#HotkeyModifierTimeout Value 

Parameters

인수명설명
Value 밀리 세컨드로 지정.
초기치는50.

Remarks

hot key중에서Send커멘드가 실행되었을 경우, 밀리고 있는 수식 키가 의사적으로 밀어 올려 상태로 되어 수식 키가 밀리지 않은 상태로 되고 나서 키스트로크(keystroke)가 송신된다.
키보드 훅을 사용하고 있지 않으면Send커멘드가 끝난 뒤에 수식 키가 아직 실제로 밀리고 있을까를 알 수 없기 때문에, 수식 키를 재차 밀린 상태에 되돌려야할 것인가 모른다.
거기서, 이 커멘드로 설정된 시간이 경과하고 있지 않으면 유저는 아직 수식 키를 누른 채로 있으면 간주, 수식 키를 의사적으로 재차 눌러 인하 상태로 한다.

이 값을 너무 크게 설정하면 , 유저가 벌써 수식 키를 떼어 놓고 있는데, 재차 눌러 인하 상태로 해 버려, 수식 키가 밀린 채로 상태가 되어 버리는 일이 있다.
이 상태가 되어 버렸을 경우, 실제로 수식 키를 한 번 누르는 것으로, 밀리지 않은 상태에 되돌릴 수 있다.

이 값이 작으면Send커멘드 실행시에 수식 키가 떼어 놓아진 상태가 되어 버리는 일이 있어, 수식 키를 누른 채로Send커멘드를 포함한 hot key를 여러 차례 실행할 수 없게 되어 버린다.

키보드 훅을 사용하고 있는 경우, 수식 키가 실제로 밀리고 있는지 어떤지를 취득 가능하기 때문에, 이 설정에 관계없이 정확하게 수식 키 상태가 복원된다.
NT계의 경우,#InstallKeybdHook지령으로 강제적으로 키보드 훅을 유효하게 할 수 있다.
9x계에서는,SetKeyDelay그리고 키의 입력 간격을 짧게 하는 것으로, 오동작을 줄일 수 있다.

Related

GetKeyState

Example(s)

#HotkeyModifierTimeout 200


AutoHotKey(오토핫키) 설명서 #HotkeyInterval

Posted by 발전소장
2014. 8. 13. 18:17 AutoHotKey/Commands

#HotkeyInterval

지정 시간의 사이에 실행할 수 있는 최대의 hot key수를 설정(#MaxHotkeysPerInterval(와)과 함께 사용)

#HotkeyInterval Value

Parameters

인수명설명
Value 시간의 길이를 밀리 세컨드로 지정

Remarks

본지령으로 지정한 기간의 사이에#MaxHotkeysPerInterval지령으로 지정한 회수 이상의 hot key 이벤트가 발생했을 경우, 경고 다이얼로그가 표시되어 스크립트가 정지한다.

디폴트 설정은 「2000」(2초).

이 기능에 의해, 무한 재귀 hot key 호출 등, hot key 이벤트가 실행계속 되어 버리는 불편을 탈출할 수 있다.
예를 들어, 「^c::Send,^c」라고 하는 정의를 했을 경우,Ctrl+C하지만 밀리면Ctrl+C(을)를 송신하는 써브루틴이 실행되어 그Ctrl+C에 반응해 재차 사브리틴이 실행되고 엔들레스 루프에 빠져 버린다.
여기서#HotkeyInterval,#MaxHotkeysPerInterval의 설정이 적절하면, 지정 회수의 hot key가 실행된 시점에서 경고가 표시되어 스크립트가 정지한다.

「q::Send,d」(와)과 같은 키 교체를 실시하고 있어 키를 누르고 있을 뿐으로 했을 때의 키 반복 간격을 짧게 하고 있는 경우, 키 반복을 계속했을 때에 경고가 표시되어 버리는 경우가 있다.
「#MaxHotkeysPerInterval 70」정도로 해 두면, 컨트롤 패널의 키보드 설정으로 「표시의 간격」을 최고 속도로 하고 있어도 문제 없을 것이다.

Related

#MaxHotkeysPerInterval

Example(s)

#HotkeyInterval 2000 ; This is  the default value (milliseconds).
#MaxHotkeysPerInterval 50 ; This is the default value.


AutoHotKey(오토핫키) 설명서 #EscapeChar

Posted by 발전소장
2014. 8. 13. 18:16 AutoHotKey/Commands

#EscapeChar

스크립트의 이스케이프 문자(디폴트는 「`」)(을)를 변경

#EscapeChar NewChar

Parameters

인수명설명
NewChar 1아르바이트의 문자를 지정

Remarks

이스케이프 문자는, 다음에 오는 문자와 아울러 특별한 문자로서 해석된다.

자세한 것은,이스케이프 문자의 해설을 참조.

Related

별로 사용하지 않지만, 이하의 지령도 있다

#DerefChar # ; 변수 전개로 변수명을 둘러싸는 문자(디폴트는 「%」)(을)를 변경
#Delimiter / ; 커멘드의 인수를 단락짓는 문자(디폴트는 「,」)(을)를 변경

Example(s)

#EscapeChar \ ; Change it to be the same as AutoIt2's.


AutoHotKey(오토핫키) 설명서 #ErrorStdOut

Posted by 발전소장
2014. 8. 13. 18:15 AutoHotKey/Commands

#ErrorStdOut

문법 에러를 다이얼로그 표시하지 않고 표준 출력에 출력한다

#ErrorStdOut

Remarks

텍스트 문자 편집기의 매크로등에서 스크립트를 실행해 문법 에러를 체크하는데 사용할 수 있다.

스크립트 마다 이 지령을 추가하는 것보다,커멘드 라인 인수그리고 「/ErrorStdOut」(을)를 지정하는 편이 편리.

Example(s)

#ErrorStdOut


AutoHotKey(오토핫키) 설명서 #CommentFlag

Posted by 발전소장
2014. 8. 13. 18:13 AutoHotKey/Commands

#CommentFlag

코멘트의 개시 문자열을 설정한다

#CommentFlag NewString

Parameters

인수명설명
NewString 코멘트의 시작으로 간주하는 문자열(최대15문자까지)

Remarks

디폴트의 코멘트 개시 문자열은 「;」.

코멘트 개시 문자열은, 줄머리 혹은 공백 문자의 직후에서만 기능한다.

Related

#EscapeChar

Example(s)

#CommentFlag // ; Change to C++ style of comments.


AutoHotKey(오토핫키) 설명서 #ClipboardTimeout

Posted by 발전소장
2014. 8. 13. 18:12 AutoHotKey/Commands

#ClipboardTimeout

클립보드에 액세스 할 수 없을 때에 기다리는 시간을 설정

#ClipboardTimeout Milliseconds

Parameters

Milliseconds 대기 시간을 밀리 세컨드로 지정.초기치는 「1000」.
「-1」(을)를 지정하면, 열게 될 때까지 계속 쭉 기다린다.

Remarks

다른 프로그램이 긴 시간 클립보드를 열고 있으면, 다른 어플리케이션은 클립보드를 열지 않게 액세스 할 수 없다.
AutoHotkey(은)는,Clipboard변수의 조작등에서 클립보드에 액세스 할 때, 클립보드가 열리게 될 때까지#ClipboardTimeout그리고 지정된 시간만 계속 기다린다.
이 시간만 기다려도 열지 않는 경우, 에러가 표시된다.

클립보드가 열리게 되는 것을 기다리고 있는 동안은, 다른스렛드하지만 끼어들 수 없다.

Related

Examples



AutoHotKey(오토핫키) 설명서 - 연산자(감산)

Posted by 발전소장
2014. 8. 13. 18:10 AutoHotKey/Commands

- 연산자(감산)

2개의 식의 차이를 돌려주는 연산자

Expression1-Expression2

Parameters

인수명설명
Expression1임의의 식
Expression2임의의 식

Related

, if(식), Var:=식

AutoHotKey(오토핫키) 설명서 >> 연산자

Posted by 발전소장
2014. 8. 13. 18:09 AutoHotKey/Commands

>> 연산자(논리 오른쪽 시프트)

비트를 지정 자리수 오른쪽 시프트 하는 연산자

Expression1>>Expression2

Parameters

인수명설명
Expression1임의의 식
Expression2시프트 시키는 자리수

Remarks

빈 좌측에는0하지만 채울 수 있다.(논리 오른쪽 시프트이다)
산술 오른쪽 시프트를 하고 싶은 경우는, 「Expression1//(2**Expression2)」라고 하는 계산을 하면 좋다.

비트 연산 할 수 있는 것은 정수치만.
소수치는, 정수치로 변환하고 나서 계산된다.
내부적으로는64비트 부호 첨부 정수로 다루어지고 있는 모양.부호 첨부64비트 정수의 범위(-9223372036854775808..9223372036854775807)의 범위에 들어가지 않는 경우,65비트째부터 위는 잘라 버릴 수 있다.

Related

, if(식), Var:=식

AutoHotKey(오토핫키) 설명서 * 연산자(메모리 주소)

Posted by 발전소장
2014. 8. 13. 18:07 AutoHotKey/Commands

* 연산자(주소에 격납된 값)

주소로 지정된 메모리 영역의 아르바이트치를 얻는 연산자

*Address

Parameters

인수명설명
Address메모리 영역의 주소를 나타내는 정수

Remarks

결과는Address그리고 나타내지는 메모리 영역의 아르바이트치(0...255)(이)가 된다.
「*Addr:=Asc("x")」(와)과 같이 대입 끝에는 할 수 없다.
값을 변경하려면 , 「DllCall("RtlFillMemory", UInt, Addr, UInt, 1 , UChar, Asc("x")) 」(와)과 같이 한다.

2아르바이트 이상의 값을 이득 싶으면,NumGet()함수를 사용하는 것이 좋다.

Related

, if(식), Var:=식

AutoHotKey(오토핫키) 설명서 ** 연산자

Posted by 발전소장
2014. 8. 13. 18:05 AutoHotKey/Commands

** 연산자(나무승)

2개의 식 나무승을 요구하는 연산자

Expression1**Expression2

Parameters

인수명설명
Expression1임의의 식
Expression2임의의 식

Remarks

Expression1의Expression2승이 된다.
Expression1(와)과Expression2(은)는 모두 소수치를 사용할 수 있다.
연산자의 우선 순위의 형편에 의해,Expression1에 부의 값을 지정하고 싶은 경우는, 「(-2)**5」(와)과 같이 「()」(으)로 둘러쌀 필요가 있다.

「(-2)**0.5」(와)과 같은, 부의 값의 소수치승은 할 수 없다.

Related

, if(식), Var:=식