아래 포스팅에서 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 를 사용하여 윈도우를 자동화하는 경우 다양한 사례들에 부딪히게 되는데~ 오늘은 제가 최근에 겪은 사례와 그 해결 방법에 대해서 소개를 해 보렵니다.

저는 PC에서 카카오톡 PC 버전을 사용하고 있습니다. 로그인 설정에 따라서 다르겠지만 저는 카카오톡 PC 버전에 “잠금 모드로 로그인 설정”을 해 놔서~ 실행되면 아래의 그림들과 같이 잠금 모드로 실행되고 로그인 비밀번호를 입력해 줘야 PC 에서 카카오톡을 사용할 수 있습니다.

그러다 보니 매번 비밀번호를 입력하는 것이 귀찮아서 Autohotkey 를 사용하여 카카오톡 로그인 자동화를 만들어 보고 싶었습니다. 그런데 만들다 보니 카카오톡 비밀번호를 넣기 위해서는 비밀번호를 넣는 Edit3 control 이 활성화 될 때까지 기다려야 했습니다. 물론 조금 단순하게 그냥 sleep 을 오래줘서 기다리게 하는 방법도 있겠지만 Edit3 control 의 유무를 체크하게 하는 방법을 사용하고 싶었습니다.

그래서 Autohotkey 로 특정창의 특정 control 유무를 체크하는 방법을 알아보니 ControlGet 이라는 명령어가 있었습니다. ControlGet 의 메뉴얼은 아래 주소에서 확인할 수 있습니다.

https://autohotkey.com/docs/commands/ControlGet.htm

아래는 카카오톡 창에서 패스워드를 입력하는 Edit3 컨트롤이 사용 가능한지를 확인하는 코드 입니다.

ControlGet, OutputVar, Enabled, , Edit3, 카카오톡 ahk_exe KakaoTalk.exe

Msgbox % OutputVar

매뉴얼을 보시면 아시겠지만 위 코드에서 Enabled 부분이 SubCommand 인데 처음에는 Edit3 가 보이는지 안 보이는지를 체크 하려고 Visible SubCommand 를 사용 했습니다.

그런데 아래와 같이 사용자 눈에는 보이지만 초기에는 Visible 이 0 이고~

Edit3에 커서가 Focus 되서 뭔가 하나라도 입력이 되어 있는 경우에만 Visible 이 1 로 표시된다는 걸 알 수 있었습니다.

따라서 Edit3 컨트롤이 사용가능한지 아닌지를 판단하기 위해서는 Enabled SubCommand 를 사용하는게 맞는 것으로 보였습니다.

결론적으로 Edit3 컨트롤이 입력 가능 할 때까지 기다렸다가 암호를 입력하고 Enter 를 쳐서 로그인하는 코드는 아래와 같습니다. passWordStr 변수의 값을 자신의 PASSWORD 로 변경 후 사용해 보시기 바랍니다.

passWordStr:="PASSWORD"

Loop

{

ControlGet, OutputVar, Enabled, , Edit3, 카카오톡 ahk_exe KakaoTalk.exe

if OutputVar = 1

break

Sleep, 333

}

Sleep, 333

ControlSend, Edit3, %passWordStr%{Enter}, 카카오톡 ahk_exe KakaoTalk.exe


오늘은 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

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

이전 포스팅에서 Cygwin 에서의 Octave 사용과 관련하여 간단하게 설명드린 바 있는데요~


2013/09/04 - [programming language/Octave] - Cygwin Octave plot() 안 될 때~


 


오늘은 좀더 구체적으로 package 설치하는 방법에 대해 설명하려 합니다.

 

octave 에는 다양한 package 들이 있는데요. Package 는 용도에 따른 함수 라이브러리 들입니다. MATLAB 의 툴박스와 같은 의미 입니다.

 

Octave 에서 사용가능한 Package 들의 목록은 아래 주소에서 확인 할 수 있습니다.

 

http://octave.sourceforge.net/packages.php

 

아래 그림과 같이detail 을 누르고 들어가서~ 보시면 아래 그림과 같은 Dependencies 가 있는데요~

Signal 1.2.2 버전의 package 를 설치하기 위해서는 Octave (>= 3.6.0) 3.6.0 버전 이상과 specfun (>= 0.0.0), control (>= 2.2.3), general (>= 1.3.2) 의 package 들이 미리 깔려 있어야 한다는 겁니다.

Octave 에서 ver 이라고 치면 아래 그림과 같이 현재의 Octave 버전과 Package 들이 보여지게 됩니다.

 

Octave package 를 설치하는 가장 쉬운 방법은 Octave 프로그램 상에서 아래 형식의 명령어를 사용하는 겁니다.


pkg install -forge 패키지 이름 –auto

 

–forge 는 octave-forge 사이트에서 자동으로 받으라는 것이고 –auto 는 해당 package 를 자동으로 load 하는 겁니다. –forge 옵션을 사용 할 때는 인터넷이 연결된 상태여야 합니다.

 

그럼 간단하게 audio package 를 설치하는 예를 실행해 보죠~

 

audio package 는 이름만 보셔도 아시겠지만 음원과 관련한 package 인데요~      Function Reference 를 확인해 보시면~ 음원을 재생하고 읽고 쓰고 하는 등과 같은 함수들이 들어있네요~

 

http://octave.sourceforge.net/audio/index.html

 

Octave Command 창에서 다음과 같이 명령어를 칩니다.

pkg install -forge audio –auto

 

다음과 같이 설치되는 것을 보실 수 있을 겁니다.

 

그리고 잘 설치 된 건가 확인 하기 위해 audio package 의 함수 중 하나인 soundsc() 함수에 대한 help 를 볼까요~ 잘 설치된 걸 확인 할 수 있습니다.

 

그럼 즐거운 Octave 프로그래밍 되시길~


  1. 2014.04.08 01:35

    비밀댓글입니다

    • 남성 2014.04.08 03:15 신고

      cygwin octave 에서 그래프가 안그려 진다는 거죠?
      아래 글 참조해서 x 윈도우에서 해 보시기 바랍니다.
      http://iamaman.tistory.com/706

+ Recent posts