사랑방에 올렸던 것인데 보관차원에서 여기로 옮김.
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:
이 매크로는 과목코드를 입력할 때의 오타가능성을 줄이고, 수십초의 시간을 절약하는데 목적이
있습니다. 수강신청 메뉴가 오류가 난다거나 하면 전혀 사용할 수 없습니다. 수강신청을
할 때, 정시에 자기 브라우저에 메뉴가 뜨는지가 매크로 사용보다 더 결정적인
영향을 끼칩니다. 그리고 이것은 사실 사용자가 손 쓸 수 있는 부분은
없고, 세인트가 전처럼 불안정하던 상황에서는 본인의 운이라고 할 수 밖에 없겠습니다.
----
추가적인 문의는 이 글에 댓글로 달아주세요. 사랑방에 있는 원문은 너무 뒤에 있어서 문의 남기셔봤자 확인하기도 힘들고 해서 여기로 옮겨놓은 것이니까요.




