사랑방에 올렸던 것인데 보관차원에서 여기로 옮김.


2008년 7월 1일 최초 작성.
----

저는 그냥 아침에 수작업으로 입력하긴 했지만(덕분에 두어과목 삑사리ㅜㅜ), 아무래도 매크로 작성을 하실 줄 아는 분보다 그건 대체 뭐냐 하는 분이 더 많을 것 같아, 매크로 작성을 이리저리 궁리해서 그대로 따라할 수 있도록 구성해보았습니다.



그대로 따라해보세요.


1. 오토핫키 프로그램 다운로드 후 설치.
http://www.autohotkey.com/download/AutoHotkeyInstall.exe


2. 다음의 내용을 메모장에 붙여넣은 후 자신의 수강신청 시나리오에 맞게 과목코드를 수정한 후 saint.ahk 등의 이름으로 바탕화면에 저장. 확장자는 .ahk이어야함.
----
^!1:: Send, LCU4003-05{TAB}LCU4004-01{TAB}LCU4017-02{TAB}LCU4012-01{TAB}SPM3113-01{TAB}SHS2005-01{TAB}{ENTER}


^!2:: Send, CSE4187-01{TAB}SPM3110-01{TAB}{TAB}{TAB}{TAB}{TAB}{ENTER}


----
매크로 코드설명 :
* ---- 사이의 내용을 복사합니다(줄은 포함하지 않고). 각각 한줄에 이어져야합니다.
* LCU4003-05 등이 과목코드입니다. {TAB}은 탭이구요.
* "과목코드{TAB}" 패턴이 6번 있는 꼴입니다. 입력할 과목이 6개보다 적더라도 탭은 6번 있어야 합니다. (두번째 코드처럼)
* 위의 예제 코드에는 총 8과목이 들어있는 셈입니다.
* 저 형식을 유지하여 계속 추가하면(^!3:: 블라블라 같은 식으로), 원하는대로 단축키를 추가할 수 있습니다.
* 수강신청 메뉴의 '저장' 버튼까지 누르도록 되어 있으므로(위 코드의 각 줄의 마지막에 있는 {ENTER}가 바로 그 역할), 매크로 실행 후 따로 '저장' 버튼을 누를 필요 없음.
코드설명 끝.


3. SAINT에 미리 로그인 한 상태에서, 바탕화면의 saint.ahk 더블클릭하여 실행하여 수강신청 준비모드에 들어갑니다.


4. 8시 정각에 '수강신청' 메뉴로 이동하여 '직접 입력' 란의 첫번째 필드에 마우스를 찍고, Ctrl+Alt+1 을 누르면, 첫번째 줄에 있는 과목코드가 다라락 입력됨. SAINT 서버의 처리 결과에 따라 확인 메시지가 출력될테고, 다시 입력창이 나오면 또 첫번째 필드에 마우스를 콕 찍고 Ctrl+Alt+2를 누르면 두번째 줄에 입력해놓은 코드가 다라락 입력됨. 여러가지 시나리오를 준비하는 것도 좋은 방법이겠지요.
주의: 브라우저에서의 한영 입력상태가 영문인지 꼭 확인하십시오. 매크로라는게 워낙 저수준으로 키보드나 마우스 입력 따위를 그대로 흉내내는 것이기 때문에, 한글 입력 상태에서 매크로를 돌리면 그 상태에서 키보드를 타이핑하는 것과 마찬가지로 원하는대로의 영문이 아니라 한글이 입력됩니다.


5. 미리 테스트해보세요. 메모장을 열어서, Ctrl+Alt+1 을 눌렀을때 과목코드와 탭과 엔터가 정확히 입력되면 제대로 작동하는 겁니다.


----
이해를 돕기 위해 시연영상 하나 올립니다. 오늘도 시간이 좀 남아서 시간 떼울 겸 만들어봤습니다.
수강신청 폼과 비슷한 가짜 폼을 하나 만들어놓고, 맨 위에 언급한 대로 따라가며 수행하면 어떻게 되는지 화면을 캡춰했습니다. 그냥 화면만 캡춰하고 언제 어디를 더블클릭하고 언제 단축키를 눌러야하는지 보이스 코멘트는 넣지 못했는데 그래도 대략 감을 잡을 수 있을 겁니다.
해상도가 크니까 화면속 마우스커서 따라 이리 저리 스크롤하며 되는대로;; 보셔요
[여기 클릭하면 새창으로 뜸]

--(2008/07/02 pm06:30)

----
시연영상에 썼던 테스트 폼을 다듬어서 직접 해볼 수 있도록 올립니다. (생긴건 SAINT의 메뉴랑 똑같습니다. 그 소스를 고친 것이기 때문에.)
매크로에 대한 불안감을 조금더 줄일 수 있겠군요.
키보드 입력상태를 한글로 해놓고 매크로를 실행해보시면, 위에서 주의하라고 한 현상이 무엇인지 확인할 있을 겁니다.
[여기 클릭하면 새창으로 뜸]
--(2008/07/02 pm11:40)


----

FAQ: 사랑방에서 블로그로 글을 옮기면서 기존 질문/답변을 정리했습니다. (2008.08.07 작성)


Q: 매크로가 무엇인가요?

A: 매크로라는 말 자체가 낯선 분들도 계실텐데 여기서 말하는 매크로란, 키보드와 마우스의 일련의 움직임과 작동을 그대로 재현해주는 것을 말합니다. 자동화 툴이라고 할 수 있죠. 1,2초를 다루는 시급한 때에 일일이 키보드를 치고(오타의 위험까지 있는) 마우스 클릭하고 하는 부분을 명령으로 입력해놓고 나중에 기계가 그 명령을 재현하도록 하는 것입니다. 별로 똑똑한 방법은 아니지만, 노가다성 작업을 자동화할 때는 효과적일 수 있죠.


Q: 매크로는 신뢰할만한가요? 번호가 밀리거나 하지는 않나요?

A: 제 개인적인 용도에서라면 어느정도 신뢰하고 쓰는 프로그램이기도 하고, 또 실제 수강신청에서 이 매크로를 사용한 분들이 번호가 밀리는 현상으로 피해를 본 경우는 알려지지 않았습니다. 하지만 100% 신뢰를 장담할수는 없습니다. 이 매크로를 쓰는 것은 본인의 책임입니다. 소위 말하는 면책사항Disclaimer에 암묵적으로 동의하신 거라고 보는 겁니다.


Q: 과목코드 입력후 '저장' 버튼까지 클릭되는건가요?

A: Ctrl+Alt+1로 매크로 호출만 해주면 매크로가 '저장' 버튼까지 클릭해줍니다.


Q: 비스타에서도 되나요?

A: 제가 비스타를 쓰지 않아 직접 테스트는 못 해봤지만, 비스타에서 돌아가지 않는다는 보고도 없었습니다. 위에 링크되어 있는 테스트 페이지에서 직접 연습해보시는 것이 좋겠습니다.


Q: 매크로를 실행했는데 과목코드의 영문이 한글로 입력이 됩니다

A: 입력모드가 영문상태인지 반드시 확인하셔야 합니다. 키보드를 그냥 누르는 것과 같기 때문에, 입력모드가 한글이면 매크로 코드에 영문으로 과목코드를 입력해놓았다하더라도 한글이 입력됩니다.


Q: 7과목 신청하려고 하는데 무조건 6과목만 신청하고 그다음에 1과목은 다시 신청해야되는 건가요?

A: 그건 세인트 수강신청 시스템이 원래 그렇게 되어있기 때문에 당연히 그렇게 해야합니다. 그래서 단축키를 두개 지정해놓은 것입니다.


Q: 이상하게 한과목씩 탭작용안되구 한칸에 두개가 겹쳐서써지는데요 이건 어떻게 해야하나요?

A: 위 코드대로 매크로를 실행했는데 오작동 했을 경우, 코드의 "Send"라는 문자열을 "SendInput"으로 바꿔주십시오. 정확한 원인은 파악되진 않았습니다만 시스템 특성을 타는 듯 합니다. 그리고 사실은, 오토핫키 프로그램의 스펙에 따르면 SendInput이 Send보다 약간 더 빠르게 입력이 가능합니다. 실제로 바꿔서 해봐도 약간 더 빠르게 입력이 되고요. 하지만 일단 코드를 Send로 해서 배포하여 학우들이 사용상 검증을 거쳤기 때문에, 일말의 문제점이라도 생길 있어 Send를 그대로 놓아두었습니다.


Q: 저 탭란은 그냥 위의 예시처럼 {TAB}으로입력하면되나요..아니면 제가 그 란을 탭으로 띄우고 해야하나요?

A: 직접 탭으로 띄우는 것이 아니라, {TAB}라는 문자열이 정확히 들어가야 탭 역할을 합니다.


Q: 이거 쓰면 수강신청 정말 잘 될까요?

A: 이 매크로는 과목코드를 입력할 때의 오타가능성을 줄이고, 수십초의 시간을 절약하는데 목적이 있습니다. 수강신청 메뉴가 오류가 난다거나 하면 전혀 사용할 수 없습니다. 수강신청을 할 때, 정시에 자기 브라우저에 메뉴가 뜨는지가 매크로 사용보다 더 결정적인 영향을 끼칩니다. 그리고 이것은 사실 사용자가 손 쓸 수 있는 부분은 없고, 세인트가 전처럼 불안정하던 상황에서는 본인의 운이라고 할 수 밖에 없겠습니다.



 

----

추가적인 문의는 글에 댓글로 달아주세요. 사랑방에 있는 원문은 너무 뒤에 있어서 문의 남기셔봤자 확인하기도 힘들고 해서 여기로 옮겨놓은 것이니까요.



  1. 오요구미찌 2008/08/09 00:30 답글수정삭제

    희상님 깔끔한 매크로 정리 감사해요 ^ㅡ^

  2. 채희상 2008/08/10 22:57 답글수정삭제

    오요구미찌/ 뭘요- 올킬하세요 ㅎㅎ

  3. ... 2009/02/11 12:33 답글수정삭제

    이거 사용할때요.. 어쩔땐 잘 되고 또 어쩔땐 첫 과목의 두글자가
    사라진채로 입력되는데 뭐가 문제인가요??ㅠㅠ
    예를 들어 과목명이 LCS2003-04 이면, S2003-04 이런식으로 입력되요;;

    내일 당장 수강신청인데 걱정이네요ㅠ
    답변좀 부탁드려요ㅠㅠ

  4. ... 2009/02/11 23:08 답글수정삭제

    앗 저도 앞에 첫과목 두글자가 사라지는데요..

  5. ... 2009/02/11 23:16 답글수정삭제

    전 맨 끝에 {ENTER}지우고 저장하고 난후에

    실행해서 오타나면 수정하고나서 직접 클릭하려구요..
    그게 나을 듯 싶네요...
    저도 낼 수강신청인데....ㅎㅎ 행운을 빌어요..

  6. 서강인 2009/02/12 01:59 답글수정삭제

    안녕하세요 희상님 ㅠㅠㅠ
    매크로 잘 따라했는데요
    맨 마지막 saint 수강신청란 테스트폼으로 되어있는데에
    테스트해보려구 바탕화면에 저장된
    saint.ahk더블클릭 상태에서 테스트해도 안되네요 ㅠㅠㅠㅠ
    아무것도 입력이안되요 ㅠㅠㅠ
    ctrl + alt + 1하는데두요
    왜 그런걸까요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠ

  7. 행인 2009/02/12 09:47 답글수정삭제

    채희상님 감사합니당^^

  8. 빅가 2009/02/12 20:57 답글수정삭제

    오늘 올킬 달성했습니다. 정말 감사합니다~!!
    참고로 Sendinput으로 하면 입력속도가 훨씬 빠르네요
    문제없이 잘 동작하구요.

  9. 올킬? 2009/02/12 22:41 답글수정삭제

    채희상님, 올려주신 가짜 세인트 폼에 테스트를 해보는데
    자꾸 6과목 중 앞에 2과목이 안쓰이고 뒤에 4과목만 적힙니다.
    이거 왜그런걸까요..

  10. 채희상 2009/03/05 10:54 답글수정삭제

    2월 내내 바빠서 여기에 댓글이 달린 줄 미처 몰랐네요 -_-;
    답변을 못 드려서 죄송합니다;;;;;

  11. 2009/08/11 14:22 답글수정삭제

    비밀댓글 입니다

  12. 서강인 2010/02/10 12:31 답글수정삭제

    세인트를 크롬으로 해도 돌아갈까요.? 크롬으로 해서 매크로 쓰면 또 될까요?ㅋㅋ

    • 희상 2010/02/11 00:20 수정삭제

      크롬에서 매크로 쓰는 것은 문제 없는 일이지만
      학교에서 SAINT를 웹표준 호환성 있게 만들었는지는 저도 모르겠네요 ㅎㅎ

  13. 2010/02/10 17:15 답글수정삭제

    비밀댓글 입니다

    • 희상 2010/02/11 00:22 수정삭제

      sleep나 setkeydelay를 쓰라는 소리는 다른 학우들 사이에 돌고 있는 얘기인가요?
      저도 써본 적이 없는거라 저도 무슨 소리인지;;;

      키입력이 제대로 되지 않는다면, Send를 SendInput 으로 고쳐 써보시고, 그래도 안되면 원인을 알수가 없네요.

  14. 2010/02/11 01:01 답글수정삭제

    비밀댓글 입니다

  15. 대박나자 2010/02/20 00:56 답글수정삭제

    님 진짜 감사해요 좋은거얻었네요
    근데 설명보고 다할수있게됫는데 수강신청 폼이 여섯칸이나 됫나요??
    제가 지금 학교 1학기 박게 안다녀서 잘모르는데 개설과목정보 페이지랑 똑같은걸로 기억하는데 여섯칸짜리 페이지는 어딨죠??

  16. 대박나자 2010/02/20 12:26 답글수정삭제

    그말이 아니라 제가 한번박에 수강신청을 안해서 실제 서강대 수강신청 폼을몰라서요
    그래서 제가 묻고싶은게 실제 수강신청란이 본문의 새창처럼 여섯칸으로 구성되어있나요?

  17. 허엉 2010/08/09 21:37 답글수정삭제

    2010년 2학기 수강신청을 오토핫키 매크로를 사용해서 하려고 하는데요...
    연습하는 폼에 실행을 시켜보니까 처음 몇번은 잘되다가 갑자기 문자가 지워지고 숫자가 없어지고...그래요ㅠㅜ 왜그런건가요??
    내일 수강신청인데 너무 걱정되네요ㅠㅜ
    답변 부탁드려요~~

    그리고 2009년 2학기 때 이 블로그 보고 매크로 써서 올킬했어요ㅎ 감사합니다ㅎㅎ

트랙백 주소 :: http://blog.theand.pe.kr/1/trackback/
옵션
댓글 달기