얼마 전 어떤분께서 Windows에서 광클릭으로 하는 스크립트를 궁금해 하시더군요. 아시는 분은 아시겠지만 Autohotkey 를 사용하면 이런 기능들은 매우 쉽게 만들 수가 있습니다. 질문하신 분은 아마도 게임을 하는데 사용하시는 것 같더군요.

어쨌든 Autohotkey 를 사용하여 광클릭으로 하는 스크립트는 아래와 같습니다. 마우스 왼쪽 버튼을 계속 누르고 있으면 해당 부분을 광클릭 하게 되는 코드입니다. Esc 를 누르면 해당 스크립트파일이 종료 됩니다.


~LButton::

while GetKeyState("LButton", "P")

{

Click

Sleep, 5

}

return


Esc::

ExitApp


sleep 를 안 넣으면 클릭이 너무 빨라서 렉에 걸린다고 하네요. 각자 용도에 맞게 sleep 시간을 조절해 보시기 바랍니다.



보통 Autohotkey 는 CTRL, ALT, SHIFT 와 같은 Trigger 키와 숫자, 문자 등과 같은 키의 조합을 사용하여 단축키를 만들곤 합니다.

그냥 문자 키 두개를 사용하여 만들고 싶은 경우에는 & 로 연결해서 사용하곤 하지만 일반적인 경우에는 그 이상의 키들을 조합해서 사용할 수는 없습니다. 

2개 이상의 문자를 사용하여 단축키를 만들고 싶은 경우에는 #if 를 사용하면 해결 할 수 있습니다.

아래 주소의 메뉴얼의 예를 보면 #if  와 GetKeyState() 함수를 사용하여 AppsKey 가 눌려 있는 경우 F1, F2... F6 키의 조합을 이용하여, 즉 AppsKey 와 Function 키 두개의 조합으로 키를 만들어 사용 할 수 있죠.



#if GetKeyState("AppsKey", "P")
F1 & F2::MsgBox F1 & F2 Hotkey activated.
F2 & F3::MsgBox F2 & F3 Hotkey activated.
F3 & F4::MsgBox F3 & F4 Hotkey activated.
F4 & F5::MsgBox F4 & F5 Hotkey activated.
F5 & F6::MsgBox F5 & F6 Hotkey activated.

#if

위 코드를 실행 시킨 후에  오른 손으로 AppsKey를 누르고 왼손으로 F1 과 F2 를 동시에 누르면 아래와 같이 message box 가 나옵니다. 


제 키보드의 경우  AppsKey 옆에 Right Window 키가 있습니다. 그래서~ Right Window 와  AppsKey 그리고 Function 키들의 조합을 사용하여 아래와 같이 4개 키 조합으로 단축키를 만들 수 도 있겠죠~

#if GetKeyState("RWin", "P") and GetKeyState("AppsKey", "P")
F1 & F2::MsgBox F1 & F2 Hotkey activated.
F2 & F3::MsgBox F2 & F3 Hotkey activated.
F3 & F4::MsgBox F3 & F4 Hotkey activated.
F4 & F5::MsgBox F4 & F5 Hotkey activated.
F5 & F6::MsgBox F5 & F6 Hotkey activated.

#if

#if 구문에 and 를 계속 붙이면~ 더 많은 키 조합도 만들 수가 있을 겁니다.



  1. 편리본좌 2017.03.11 18:24

    감사합니다 덕분에 세개의 조합키로도 사용할수 있다는걸 알았습니다 그런데

    마지막에 #if 를 붙여줘야 하나요? return 같이 닫는 역할인가요?

    • 남성 2017.03.11 18:31 신고

      #if GetKeyState("AppsKey", "P") 에 의한 영향이 끝나는 부분입니다.
      즉 #if 를 안 써 주면 #if GetKeyState("AppsKey", "P") 에 의한 영향이 계속 된다는 거죠.

  2. 편리본좌 2017.03.11 20:06

    관리자의 승인을 기다리고 있는 댓글입니다

윈도우 작업표시줄에는 시간이 나오는데

 

시간을 표시하거나 숨기는 방법이 있어서 소개하려 한다.

 

아래 주소에서 위에서 소개한 동작을 구현한 코드를 발결할 수 있었다.

 

http://www.autohotkey.com/board/topic/70770-win7-taskbar-clock-toggle/

 

코드는 다음과 같다.

 

#CapsLock::

ControlGet, hClock, Hwnd,, TrayClockWClass1, ahk_class Shell_TrayWnd

hShell := DllCall("GetAncestor", "UInt", hClock, "UInt", 2) ; GA_ROOT

 

while GetKeyState("LWin")

{

WinShow, ahk_id %hClock%

DllCall("SendMessage", "UInt", hShell, "UInt", 0x5, "UInt", 0, "UInt", 0x0)

}

WinHide, ahk_id %hClock%

DllCall("SendMessage", "UInt", hShell, "UInt", 0x5, "UInt", 0, "UInt", 0x0)

 

Return

 

Window + CapsLock 을 누르면 Trigger 가 되고 window 키가 눌러진 동안에 시간이 표시된다.

 

Window 버튼을 release 하면 다시 시간 표시가 숨겨진다.

 

    

+ Recent posts