아래 포스팅에서 Autohotkey를 사용하여 윈도우 환경변수를 여는 방법에 대해서 소개를 한 적이 있습니다.

https://iamaman.tistory.com/404

물론 저는 요즘은 직접 환경변수 창을 열어서 환경변수를 설정하기 보다는 아래의 포스팅에서 소개 했었던 Rapid Environment Editor 를 사용하여 환경 변수를 설정하는 편입니다.

https://iamaman.tistory.com/1213

윈도우를 사용하면서 정말 많은 설정들을 자주 바꾸게 되는데~ 그중에 하나가 “작업표시줄 자동 숨기기” 기능입니다. Autohotkey를 사용하는 분들은 아시겠지만 Autohotkey 를 사용하면 윈도우 사용의 대부분을 자동화 할 수가 있고~ 오늘은 “작업표시줄 자동 숨기기”를 Autohotkey 로 toggle 시키는 방법에 대해서 소개해 보려 합니다.

현재 제가 사용하는 컴퓨터의 운영체제는 윈도우 7 이고 “작업표시줄 자동 숨기기” 기능을 설정하기 위해서는 “작업 표시줄 및 시작 메뉴 속성” 창을 열어야 합니다. 해당 창은 아래 명령어를 통해서 열 수가 있습니다.

RunDLL32.EXE shell32.dll, Options_RunDLL 1

위 그림과 같이 Win + R 을 눌러서 실행 창을 열고 위 명령어를 실행시키면~ 아래와 같이 “작업 표시줄 및 시작 메뉴 속성” 창이 열립니다.

Autohotkey 에서 위 명령어를 실행하는 방법은 다음과 같습니다. 아래 명령어에서 주의할 부분은 중간에 있는 쉼표를 ` 를 사용하여 escaping 해 줬다는 것입니다.

Run, RunDLL32.EXE shell32.dll`, Options_RunDLL 1

“작업 표시줄 및 시작 메뉴 속성” 창이 열린 후 “작업표시줄 자동 숨기기” 를 toggle 시키기 위해서는 “작업표시줄 자동 숨기기” 가 현재 체크가 됐는지 안 됐는지를 확인해야 합니다. 해당 명령어는 아래와 같습니다.

ControlGet, autohide_unhide, Checked, , Button2, 작업 표시줄 및 시작 메뉴 속성 ahk_class #32770

체크가 되어 있으면 autohide_unhide 변수가 1 이 되고 ~ 체크가 안 되어 있으면 해당 변수가 0 이 됩니다. 따라서 autohide_unhide 변수가 1 이면 체크를 해제 해주고 autohide_unhide 변수가 0 이면 체크를 해주면 되겠죠.

해당 코드는 아래와 같습니다.

If autohide_unhide = 1

{

Control, Uncheck, , Button2, 작업 표시줄 및 시작 메뉴 속성 ahk_class #32770

}

Else

{

Control, Check, , Button2, 작업 표시줄 및 시작 메뉴 속성 ahk_class #32770

}

이제 설정을 다했으면 “작업 표시줄 및 시작 메뉴 속성” 창의 확인을 눌러 줘야 할 것입니다. 현재 제 컴퓨터에서 확인 버튼은 Button9 이고 확인을 눌러 주는 Autohotkey 코드는 다음과 같습니다.

ControlClick, Button9, 작업 표시줄 및 시작 메뉴 속성 ahk_class #32770, , Left, 1, NA

이제 중요한 코딩은 다 끝난 것 같습니다. 코드 사이에 적절히 Sleep 명령을 넣어 주기만 하면 완성 됩니다.

위에서 소개한 전체 코드는 아래 코드를 사용하시면 되겠습니다. 저는 해당 기능을 하는 단축키를 Ctrl + Win + H 로 설정을 했습니다. 원하시는 단축키로 적절히 바꿔서 사용해 보시기 바랍니다.

위 코드를 실행하고 단축키를 눌러보면 아래와 같이 동작하는 것을 확인할 수 있습니다. 재밌지 않나요? ㅎㅎㅎ




오늘은 Autohotkey 를 사용한 이트레이드 증권 자동 로그인 방법에 대해 소개 드리려 합니다.

 

아래 포스팅에서도 설명드렸지만 Autohotkey 를 사용하면 윈도우 프로그램들의 각 Control 들을 제어 할 수 있습니다.


2012/03/17 - [programming language/Autohotkey] - Autohotkey 로 제어판 다루기


 

E-TRADE Pro 를 실행 해보면 아래 화면과 같습니다.

 

저는 위 그림과 같이 고객 ID 는 저장을 해 놓은 상태로 비밀 번호와 공인인증만 Autohotkey 를 사용하여 로그인 합니다.

 

HTS 에 로그인 하기 위해서는 당연히 비밀 번호를 넣고~ 공인인증 번호를 넣고 마스터로 접속이라는 버튼을 눌러야 합니다.

 

일단 위 그림의 비밀번호 부분의 컨트롤이 뭔지를 확인해야겠죠.

 

윈도우를 설치한 폴더를 확인하면 아래 그림과 같이 AutoIt3 Window Spy 라는 프로그램이 있습니다. AutoIt3 Window Spy 를 실행 시키고~ 아래 그림과 같이 비밀 번호를 입력하는 부분에 마우스를 올리면~ 해당 control 에 대한 정보가 나옵니다.

 

비밀 번호를 입력하는 부분은 Edit2, 공인 인증을 입력하는 부분은 Edit3, 마스터로 접속이라는 버튼은 Button3 라는 것을 확인 할 수 있습니다.

 

 

이제 알아내야 할 정보는 다 알아 냈습니다.

 

다음과 같이 코딩만 하면 됩니다. 아래 코드 예는 Win + C 를 누르면 E*TRADE Pro HTS 가 샐행되면서~ 비밀번호와 공인인증 비밀번호가 입력되고~ 마스터로 접속 버튼을 클릭하게 됩니다. 아래 코드에서 파란 색으로 표시한 부분에 각자의 비밀번호를 넣어 주시기 바랍니다.

 

#c:: ; Win+ C

Run "C:\ETRADE\XingQ\xingqlogin.exe" ; HTS 실행

WinWait, E*TRADE Pro

WinActivate, E*TRADE Pro

ControlSendRaw, Edit2, 비밀번호,E*TRADE Pro ; 비밀번호 입력

Sleep, 100

ControlSendRaw, Edit3, 공인인증비밀번호,E*TRADE Pro ; 공인인증 비밀번호 입력

Sleep, 100

ControlClick, Button3, E*TRADE Pro ; 마스터로 접속 버튼 클릭

Return

 

위 Autohotkey 작성후에 Win+ C 를 눌러서 실행해 보면~ 다음 동영상에서 보는 바와 같이 E*TRADE Pro 가 실행되면서 간단하게 로그인 되는 것을 확인 할 수 있습니다.





최근에 몇몇 분들이 위 스트립트가 실행이 안된다고 해서 좀더 보완한 코드는 아래와 같습니다. 아래 코드는 현재 이베스트 HTS 에서는 확인을 했습니다. 미래에셋 카이로스에서도 비슷하게 하면 됩니다. 


Run "C:\eBEST\eBestPro\XingQLogin.exe"

WinWait,eBEST Pro

WinActivate,eBEST Pro

ControlFocus, Edit2,eBEST

ControlSend, Edit2, 비밀번호,eBEST

Sleep, 2000

ControlFocus, Edit3, eBEST

ControlSend, Edit3, 공인인증비밀번호,eBEST Pro

Sleep, 2000

ControlClick, Button3,eBEST


  1. 2016.02.18 10:11

    비밀댓글입니다

    • 남성 2016.02.18 13:16 신고

      글쎄요 이렇게만 봐서는 왜 그런지 정확히 모르겠네요. 잘 되다가 안되신다고 하는데 대소문자 문제는 아닐것 같은데... 입력은 되는데 잘 못 들어가는건지 아님 입력 자체가 안되는건지도 확인을 해 보셔야 할 것 같네요. Edit3 가 맞는지도요.

  2. 2016.08.17 18:57

    비밀댓글입니다

  3. 2016.08.17 19:03

    비밀댓글입니다

    • 남성 2016.08.17 19:45 신고

      위 포스팅에서는 Etrade 증권 HTS 에 대해 해 본건데, 다른 증권 사의 경우에는 Edit2, Edit3, Button3 가 아닐 수 있습니다.
      Active window Info 에서 사용하시는 HTS 의 Contol ClassNN 이름이 무엇인지를 정확히 확인 후 넣으셔야 하고

      Sleep 값을 좀 더 크게 줘 보시거나

      그래도 안 될때는 아래와 같이 한번 해 보시기 바랍니다.

      아래 코드는 제가 방금 이베스트 증권 HTS 에서 정상적으로 동작하는거 확인한 코드 입니다.


      Run "C:\eBEST\eBestPro\XingQLogin.exe"
      WinWait,eBEST Pro
      WinActivate,eBEST Pro
      ControlFocus, Edit2,eBEST
      ControlSend, Edit2, 비밀번호,eBEST
      Sleep, 2000
      ControlFocus, Edit3, eBEST
      ControlSend, Edit3, 공인인증비밀번호,eBEST Pro
      Sleep, 2000
      ControlClick, Button3,eBEST


  4. 2016.08.17 19:43

    비밀댓글입니다

    • 남성 2016.08.17 19:46 신고

      위 포스팅이랑 노트패드에서의 입력이랑 은 상관이 없는건데....

  5. 종혁 2018.10.15 12:08

    winwait, winactivate 뒤에 오는 명령어들은
    뭘 근거로 만들어졌나요? 폴더명도 아닌거 같은데
    예를 들어 미래에셋 카이로스는 어떻게 써야 하나요

    • 남성 2018.10.15 18:18 신고

      AutoIt3 Window Spy 를 실행하고 kairos 를 찍어보면 해당 프로그램의 타이틀 명이 나옵니다. 그 타이틀명을 넣어주면 됩니다.

  6. 종혁 2018.10.15 13:24

    ebest pro 부분을 kairos 로 바꿔서 해봤는데 안되요

    • 남성 2018.10.15 15:45 신고

      창 이름을 제대로 바꾸셨다라고 한다면은 edit 부분의 classNN 을 윈도우 스파이 프로그램으로 정확하게 확인하신 후 넣어 주셔야 됩니다

  7. 종혁 2018.10.16 12:18

    타이틀, classnn 부분
    둘다 정확하게 입력했는데 안되요
    위의 2개 예제 전부다요. ㅠㅠ
    카이로스요

    창만 뜨고 입력이 안되요

  8. 종혁 2018.10.16 22:33

    감사합니다.

    f1::Run, C:\미래에셋대우\카이로스\kairos.exe

    WinWait,Kairos

    WinActivate,Kairos

    ControlFocus, Edit2,Kairos

    ControlSend, Edit2, ######,Kairos

    Sleep, 2000

    ControlFocus, Edit3, Kairos

    ControlSend, Edit3, ##########,Kairos

    Sleep, 2000

    ControlClick, Button1,Kairos

    Return


    ----------------------------------
    f1::Run, C:\미래에셋대우\카이로스\kairos.exe

    WinWait, Kairos

    WinActivate, Kairos

    ControlSendRaw, Edit2, ######## ; 비밀번호 입력

    Sleep, 100

    ControlSendRaw, Edit3, #########,Kairos ; 공인인증 비밀번호 입력

    Sleep, 100

    ControlClick, Button1, Kairos ; 마스터로 접속 버튼 클릭

    Return

    • 남성 2018.10.16 23:16 신고

      다른건 다 잘 하신거 같은데 단축키 쓰는 방법이 잘못된 거네요.

      아래와 같이 코딩하면 F1 을 누르면 Kairos.exe 만 실행하고 아래 부분의 코드는 실행하지 않습니다. 아래와 같이 msgbox 를 넣어보면 실행되지 않는 것을 확인 할 수 있습니다.

      F1::Run "C:\\미래에셋증권\\카이로스\Kairos.exe"
      msgbox Test
      WinWait, Kairos
      WinActivate, Kairos
      ControlFocus, Edit2, Kairos
      ControlSendRaw, Edit2, #########,Kairos
      Sleep, 2000
      ControlFocus, Edit3, Kairos
      ControlSendRaw, Edit3, #########,Kairos
      Sleep, 2000
      ControlClick, Button1, Kairos
      return

      올바른 방법은 한 줄 띄어서 코드를 써 줘야 원하는 대로 정상적으로 실행 될 겁니다.

      아래와 같이 해 주셔야 합니다. 아 그리고 혹시나 해서 말씀드리는데 카이로스에서 ID 저장에는 체크가 된 상태인거죠?

      아래 코드는 제가 정상적으로 동작하는 거 확인 한 코드 입니다. ID 저장 체크 된 상태에서 ID비밀번호와 공인인증비밀번호를 자동으로 넣고 로그인 버튼을 자동으로 누르는 코드 입니다.

      F1::
      Run "C:\\미래에셋증권\\카이로스\Kairos.exe"
      WinWait, Kairos
      WinActivate, Kairos
      ControlFocus, Edit2, Kairos
      ControlSendRaw, Edit2, #########,Kairos
      Sleep, 2000
      ControlFocus, Edit3, Kairos
      ControlSendRaw, Edit3, #########,Kairos
      Sleep, 2000
      ControlClick, Button1, Kairos
      return



  9. 종혁 2018.10.17 09:11

    감사합니다.
    엄청나십니다. 내공이...
    넷상에서 hts 입력 방법이 유일하게 있는 한곳.
    많이 배웠습니다.
    읽은만한 글도 많은것 같아 자주 들르겠습니다.
    행복한 하루 되세요,

  10. 2018.10.17 22:51

    비밀댓글입니다

    • 남성 2018.10.22 13:52 신고

      쉼표는 굳이 ` 로 이스케이핑을 하지 않아도 되야 될 것 같네요.

  11. 종혁 2020.03.20 22:21

    오랜만에 인사드려요.
    재작년 알려주신 미래에셋 hts 입력 잘사용중이었는데
    이번에 pc를 바꾼후 부터 비밀번호 입력 오류라고 뜨네요.
    단지 pc만 바꿨을 뿐인데..

    이전 pc에서는 10번중 1번꼴로 오류 떴다면
    이번엔 10번중 9번은 비밀번호 입력 오류 라고 합니다.
    왜그럴까요..

    똑같이 응용한 키움 hts는 잘만 됩니다.

    • 남성 2020.03.20 23:14 신고

      요즘 미래에셋증권은 잘 사용하고 있지 않아서 왜 그런지는 정확하게 모르겠지만 아마도 HTS 키보드 보안 프로그램 같은 것들 때문이 아닌가 생각이 되네요.

      질문 내용을 보면 될 때도 있고 안 될 때도 있는 것 같은데 ControlFocus를 한 상태에서 ControlSendRaw 를 사용하는게 아니라 send, postmessage, sendmessage 같은 것도 시도를 해 보시는게 좋을 것 같고 중간 중간 sleep 시간을 조절해 보는 것도 좋을 것 같습니다.

  12. 종혁 2020.03.21 13:38

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

오늘은 Autohotkey를 이용해서 간단하게 제어판을 다루는 방법에 대해 알아보겠습니다.

 

윈도우 운영체제의 컴퓨터를 사용 하다 보면 제어판을 건드려야 하는 경우가 종종 발생합니다.

 

한번만 설정하는 것이라면 상관없지만 제어판의 설정을 자주 바꿔줘야 한다면 이런 부분은 Autohotkey 를 이용해서 어느 정도는 자동화를 해놓으면 편리하게 설정 가능 합니다.

 

저는 윈도우 환경변수인 path 설정을 해야 하는 경우가 자주 발생하는데요.

 

이런 경우에도 Autohotkey 를 이용하여 그 접근을 용이하게 해서 사용하는 편입니다.

 

물론 윈도우의 path 설정은 set 이라는 명령어를 이용하여 한시적으로 설정할 수도 있고 Windows 7 같은 경우에는 setx 라는 명령어가 있어서 영구적으로 path 를 설정할 수도 있습니다.

 

오늘은 Autohotkey 를 이용해서는 환경변수 설정하는 데까지 들어가는 것을 자동화 하도록 어떻게 설정하는지를 말씀 드리겠습니다.

 

이전에 쓰던 XP 와 윈도우 7 은 시스템 속성의 UI 가 약간 다르더군요.

 

오늘은 윈도우 7을 기준으로 설명 드리겠습니다.

 

윈도우 7 의 시스템 속성 창은 아래 그림처럼 생겼습니다.

 

 

환경변수 창을 열기 위해서는 다음과 같은 과정을 거치죠.

 

1. 시스템 속성 창을 연다.


시스템 속성을 여는 명령어는 sysdm.cpl 입니다.

참조: 2011/09/16 - [컴퓨터일반] - 윈도우 제어판 확장 파일

위 명령어를 입력한 다음에는 컴터가 시스템 속성 창이 열릴 때까지 기다리게 해야 합니다.

 

2. 3번째 탭인 고급 탭을 클릭한다.

이때 시스템 속성 창의 각 버튼이나 각 탭 등이 어떤 건지 알려면 이전 포스팅에서 소개 드린 Active Window Info 라는 유틸을 쓰면 됩니다.

참조:  
2012/02/22 - [컴퓨터일반] - Autohotkey를 사용해 보아요~

클릭해야 하는 시스템 속성의 고급 탭 위에 마우스 커서를 올리면 Active Window Info 에 위 탭에 대한 정보가 아래 그림처럼 나오죠.

 

보시는 바와 같이 탭은 SysTabControl321 라는 것을 확인 할 수 있고, SysTabControl321 의 3번째인 고급 탭을 눌러주는 autohotkey 코드는 아래와 같습니다.

 

SendMessage, 0x1330, 2,, SysTabControl321, 시스템 속성

 

위 명령에서 0x1330 은 커서를 위치하게 하라는 명령 코드이고, 2 는 3번째 탭을 의미 합니다. (탭 번호는 0부터 시작합니다.) 그리고 아까 위에서 Active Window Info 에서 찾은 SysTabControl321 라는 컨트롤 이름과 시스템 속성이라는 창 이름을 넣어준 겁니다.

 

3. 환경 변수를 누른다.

시스템 속성에서 환경변수 버튼 위에 마우스를 갖다 놓으면 Active Window Info에 다음과 같이 환경변수 버튼의 컨트롤이 뜹니다.

 

 

이 버튼을 누르게 하는 Autohotkey 명령어는 다음과 같습니다.

 

ControlClick, Button7, 시스템 속성

 

위 명령어는 너무나 직관적이니깐 설명 안 해도 될 것 같군요.

 
 



이제 위에서 설명한 것들을 단축키로 지정해 볼까요.

 

위에서 설명한 일련의 동작들을 Win + s 라는 단축키로 지정해 보죠.

 

그래서 전체 코드는 다음과 같습니다.

 

 

#s::

Run, sysdm.cpl

WinWait, 시스템 속성

SendMessage, 0x1330,2,, SysTabControl321,시스템 속성

ControlClick, Button7, 시스템 속성

Return


 

 

이제 위 Autohotkey 코드를 확장자 ahk 로 저장한 후에 실행시키고 윈도우 키 + s 를 눌러 보시면

 

아래 그림처럼 순식간에 환경변수 설정 창이 뜨게 되죠~

 

 아래 동영상은 위에서 설명한 Autohotkey 예를 직접 실행해서 캡쳐 해 본 것입니다. 아래 동영상에서 보듯이 순식간에 환경변수 페이지가 열리죠. 



재미있죠? 그럼 오늘은 여기서 마치겠습니다.


  1. 오토핫키 2014.09.27 18:48

    연재해주신 글
    정말 많은 도움이 되고 있습니다.
    한글로 된 자료중에서 가장 알차네요^^
    감사합니다.

  2. 2015.01.03 18:07

    비밀댓글입니다

    • 남성 2015.01.03 19:04 신고

      WinSet, Transparent, 를 사용하여 창을 투명하게 한다음에 처리 하면 비활성 상태에서 동작하는것 처럼 보일 수 있을 것 같네요.

+ Recent posts