시계
Study/AutoHotKey 2011. 10. 9. 14:58
MBR의 초허접강좌~ 이번 강좌에서는 Gui 명령어를 사용해서 윈도우를 만들어 보겠습니다. AHK에는 강력한 HotKey기능도 있지만 다른 재미있는 기능들도 많이 포함되어 있습니다. 물론 윈도우를 만드는 데는 비쥬얼베이직등이 훨씬 효율적이겠지만, AHK로도 불가능한 건 아니라구요~ 예제를 따라하시면, 반투명의 시계를 화면위에 항상 표시되게 하실 수 있으실 거에요. AHK도움말의 GUI, MsgBox, InputBox & Other Dialogs 항목을 참고해 주세요. 참고로 이 강좌는 XP이상의 OS 기준입니다. ;예제 1 FormatTime, time, , h:mm:ss tt Gui, +AlwaysOnTop Gui, Font, s40 Norm Gui, Add, Text, vMyText center,%time% Gui, Show, center SetTimer, timechange, 100 return timechange: FormatTime, time, , h:mm:ss tt GuiControl,, MyText,%time% return 우선 실행시켜 보시면 화면 가운데 썰렁한 윈도우에 시계가 표시됩니다. 스크립트를 살펴보면 FormatTime, time, , h:mm:ss tt ;현재 시간을 변수 time에 시간:분:초 오전/오후 의 형식으로 저장하시오. Gui, +AlwaysOnTop ;만들어질 윈도우를 항상 다른 창 위에 보이도록 설정. Gui, Font, s40 Norm ;만들어질 윈도우의 텍스트 폰트 설정. 크기 40, 다른 속성은 기본값으로. Gui, Add, Text, vMyText center,%time% ;만들어질 윈도우에 변수 time의 내용을 창의 중앙에 텍스트(center)로 표시. ;그리고 이 텍스트 콘트롤의 이름을 MyText로 지정. Gui, Show, center ;위에서 속성과 내용을 결정한 윈도우를 화면의 중앙에 표시. SetTimer, timechange, 100 ;서브루틴 timechange를 0.1초마다 호출. return ;메인루틴의 끝. timechange: ;서브루틴 timechange의 시작 FormatTime, newtime, , h:mm:ss tt ;메인루틴과 똑같은 내용입니다. GuiControl,, MyText,%newtime% ;메인에서 지정해 놓은 MyText 콘트롤(시간이 표시되어있는 텍스트)의 내요을 새로운 시간으로 변경. return ;서브루틴의 끝 우선, 시계는 만들었는데 아무리 봐도 쓸모없는 시계... 이런 시계라면 차라리 시스템트레이의 시계보다도 못한.., 이제 여기다가 살짝 마술을 걸어보자구요. ;예제 2 FormatTime, time, , h:mm:ss tt Gui, +LastFound +AlwaysOnTop -Caption +ToolWindow Gui, Color, EEAA99 Gui, Font, s40 Norm Gui, Add, Text, vMyText center cSilver,%time% WinSet, TransColor, EEAA99 150 Gui, Show, center NoActivate SetTimer, timechange, 100 return timechange: FormatTime, newtime, , h:mm:ss tt GuiControl,, MyText,%newtime% return 실행시켜 보셨습니까? 시계가 조금 신기해졌죠~ 화면위에 항상 떠있는 반투명의 시계가 나타났습니다. 시계 밑에 있는 다른 윈도우의 내용을 보거나, 클릭하는데 방해도 되지 않는 반투명 시계^^ 도움말의 Window Management - WinSet명령어를 참고하세요. FormatTime, time, , h:mm:ss tt ; 예제 1과 동일 Gui, +LastFound +AlwaysOnTop -Caption +ToolWindow ;옵션 +LastFound는 아래의 WinSet명령어가 지금 만드는 윈도우에 영향을 주도록 설정. ;옵션 -Caption +ToolWindow 윈도우를 투명하게 만들때 타이틀바 등의 콘트롤을 치워 보이도록... Gui, Color, EEAA99 ;윈도우의 색깔을 EEAA99로 설정. 꼭 EEAA99이어야만 하는 건 아닙니다. 그냥 도움말에 나온 값을 복사해서 붙이다보니까;;; Gui, Font, s40 Norm ; 예제 1과 동일 Gui, Add, Text, vMyText center cSilver,%time% ;나머지 내용은 동일. 글자색을 은색으로 설정. (여러 색깔을 선택해 봤는데 은색이 제일 무난하더군요.) WinSet, TransColor, EEAA99 150 ;도움말 항목 WinSet을 참고해주세요. 특정 윈도우에서 선택된 색깔을 투명하게 만들어 줍니다. ;숫자는 0-255 사이의 값. 숫자가 작을수록 글자가 더 투명해집니다. Gui, Show, center ; 예제 1과 동일 SetTimer, timechange, 100 ; 예제 1과 동일 return timechange: FormatTime, newtime, , h:mm:ss tt ; 예제 1과 동일 GuiControl,, MyText,%newtime% ; 예제 1과 동일 return 이제는 조금 쓸모있어 보이죠~ 마지막으로 조금만 더 손을 봅시다. ;예제 3 #SingleInstance force Menu, Tray, Icon ,%A_WinDir%\system32\SHELL32.dll,14, 1 menu, tray, NoStandard menu, tray, DeleteAll Menu, tray, add,Exit Menu, tray, Tip, Alarm Clock`n by ImMBR FormatTime, time, , h:mm:ss tt Gui, +LastFound +AlwaysOnTop -Caption +ToolWindow Gui, Color, EEAA99 Gui, Font, s40 Norm Gui, Add, Text, vMyText center cSilver,%time% WinSet, TransColor, EEAA99 150 Gui, Show, center NoActivate SetTimer, timechange, 100 return timechange: FormatTime, newtime,, h:mm:ss tt GuiControl,, MyText,%newtime% return Exit: exitapp 메뉴를 좀 손보고, 아이콘을 바꿔 봤습니다. 이제 시스템트레이에 H자 아이콘 대신 지구 아이콘이 나오고, 트레이팁도 만들었고, 트레이아이콘 우클릭시 나오는 메뉴도 변경했습니다. #SingleInstance force ;이 스크립트의 중복실행을 금지시킴. Menu, Tray, Icon ,%A_WinDir%\system32\SHELL32.dll,14, 1 ;시스템트레이의 썰렁한 H자 아이콘을 지구 모양으로 바꿈. ;이 라인은 OS 특성을 탈 수 있으므로 문제 발생시 삭제. menu, tray, NoStandard menu, tray, DeleteAll ;시스템트레이 아이콘 우클릭시 나오는 메뉴를 모두 삭제. Menu, tray, add,Exit ;메뉴에 Exit 추가. Menu, tray, Tip, Alarm Clock`n by ImMBR ;시스템트레이 아이콘에 마우스를 올리면 나오는 TrayTip 내용 설정 FormatTime, time, , h:mm:ss tt ; 예제 2와 동일 Gui, +LastFound +AlwaysOnTop -Caption +ToolWindow ; 예제 2와 동일 Gui, Color, EEAA99 ; 예제 2와 동일 Gui, Font, s40 Norm ; 예제 2와 동일 Gui, Add, Text, vMyText center cSilver,%time% ; 예제 2와 동일 WinSet, TransColor, EEAA99 150 ; 예제 2와 동일 Gui, Show, center ; 예제 2와 동일 SetTimer, timechange, 100 ; 예제 2와 동일 return timechange: FormatTime, newtime,, h:mm:ss tt ; 예제 2와 동일 GuiControl,, MyText,%newtime% ; 예제 2와 동일 return Exit: exitapp 언젠지 모를 다음 강좌에서는 예제 3에서 만들어진 시계에 알람기능, 음성 시보 기능(여유님이 스크립트 공유에 올려주신 걸 응용해서), 그리고 세계시간 기능 정도만 추가해주면 훨씬 쓸모있는 스크립트가 될 듯 합니다. 물론 MBR의 게으름은 상상을 초월하는 관계로 언제 다음 강좌를 올릴 수 있을지는...쿨럭... 자동로그인 강좌도 한번 올려야겠다는 생각만 하고 있습니다. 지금까지 허접한 내용 참고 읽어주셔서 감사드립니다^^ |
'Study > AutoHotKey' 카테고리의 다른 글
한영 전환키 check (0) | 2011.10.18 |
---|---|
Script> 좌표/색 도우미 (2) | 2011.10.17 |
AHK 자주사용하는 명령어 (0) | 2011.10.17 |
내장변수 (0) | 2011.10.10 |
키보드 스캔코드 (0) | 2011.10.10 |
Gui는 어렵다? (0) | 2011.10.09 |
정규 표현식 설명(예제포함) (0) | 2011.10.09 |
정규 표현식 (0) | 2011.10.09 |
핑테스트 하는것 (0) | 2011.10.09 |
AutoHotKey (0) | 2011.10.09 |