방개
비밀번호를 잊어버리셨나요?

질문

눌렀을때 작동하고 눌렀다가 뗐을때 작동하는 스크립트 만드는중인데요

    • 글자 크기

^q::

{

Sendinput, {안녕하세요}

KeyWait, ^q, D

 

If (ErrorLevel = 0)

Sendinput, {반가워요}

}
return

 

컨트롤 + Q 를 눌렀을때 실행하는 명령어와

컨트롤 + Q 를 누른상태에서 떼어냈을때 작동하게 하려면 어떻게 하면 좋을까요?

 

같은 단축키로 작동시키려고 하니 어렵네요...

    • 글자 크기
댓글 4
  • 2020.2.20 18:45 댓글

    GetKeyState 함수를 이용하세요. 특정 키의 누름 / 뗌 상태를 가져올 수 있는 유용한 함수입니다. 아래 스크립트처럼 말입니다.

    ^q::
    Sendinput, 키 누름
    Loop
    {
        if (GetKeyState("Ctrl", "P") = 0 || GetKeyState("Q", "P") = 0)
            break
        Sleep, 50
    }
    Sendinput, 키 뗌
    return
    
    
    
    ESC::
    ExitApp

     

    추가로, 키 이름이 아닐 경우엔 Send(input)에 {중괄호}를 쓰지 않습니다.

  • 프날님께
    라이니스글쓴이
    2020.2.21 10:15 댓글

    덕분에 많이 배웁니다. 작동 너무 잘되네요.!

     

    그런데 제가 원하던 거랑 조금 달라서

    누르고 있을때는 "키 누름"이랑 "키 뗌"이 반복적으로 나오더라구요. 한 키로 두가지 작동을 할수 있지않을까..

    시간안에 작동하면 어떨까 생각해서 keywait 을 만들어서 응용해봤는데

     

    1초 누르고 뗐을때는 "키 누름"이 나오고, 2초 누르고 뗏을때는 "키 뗌"이 나오게

     

    해봤는데 어려워서 잘안되네요 제가 설명을 잘 못해서 두번 질문을 드려 죄송합니다.

    사실 원하던 건 키를 누르고 있을때 작동안되고 1초안에 눌렀다 떼면 "키 누름" 2초안에 눌렀다 떼면 "키 뗌"이 나올수 있을까요?

    복잡한 질문 드려 다시한번 죄송합니다.

    아래에는 제가 하다가 안되서 실패한 스크립입니다..;;

     

    ^q::

    t1 := A_TickCount

    keyWait, Ctrl

    keyWait, Q

    Sendinput, 키 누름

    t2 := A_TickCount - t1

    if t2 > 1000

    Loop

    {

    if (GetKeyState("Ctrl", "P") = 0 || GetKeyState("Q", "P") = 0)

    break

    Sleep, 50

    }

     

    t1 := A_TickCount

    t2 := A_TickCount - t1

    if t2 > 2000

    Sendinput, 키 뗌

    return

     

     

  • 라이니스님께
    2020.2.21 17:01 댓글

    제가 keyWait을 써본 적이 없어서 이걸 사용하는 방법은 모르겠네용.

    아래 코드 해보세요. 이런건 맞죠?

     

    ^q::
    prevTime := A_TickCount
    Loop
    {
    	if (GetKeyState("q", "P") = 0)
    		break
    	sleep, 100
    }
    TimeInterval := A_TickCount - prevTime
    if (TimeInterval < 1000)
    	SendInput, 키 누름 (키 누른 시간: %TimeInterval%)
    else if (Timeinterval >= 1000 && TimeInterval < 2000)
    	Sendinput, 키 뗌 (키 누른 시간: %TimeInterval%)
    else
    	Sendinput, 2초 이상 누르고 있음 (키 누른 시간: %TimeInterval%)
    return
    
    ESC::
    ExitApp

     

  • 프날님께
    라이니스글쓴이
    2020.2.21 17:38 댓글

    와 프날님 작동 너무 잘됩니다. 고맙습니다. 신기하네요 늘 건강하시고 복받으시길!

댓글 달기

서버에 요청 중입니다. 잠시만 기다려 주십시오...