[AHK] 오토핫키로 클립보드 활용 (ex:마그넷)
오토핫키는 반복 작업을 쉽게 해줍니다.
그중에서 클립보드(Ctrl+C)를 다뤄서 편하게 만들어주는 간단한 스크립트를 소개합니다.
1. 목적
- 토렌트 파일을 다운로드하려는데 링크가 죽어서 다운로드가 안 되고 다운로드 링크만 가지고 있는 경우
- 다운로드 링크에 있는 마그넷 해쉬 코드를 마그넷 주소로 만들어 토렌트에서 다운로드
2. 방법
- 해쉬코드가 포함된 다운로드 주소(예를 들면 http://example.test.com/torrent_download.php?pid=9998821&hash_string=7e632fb72dcbe38da7c8fa513e01a02db56674140)를 복사(클립보드), 클립보드 내용이 변경되면 오토핫키 작동
- 해쉬코드를 검출하여 마그넷 주소로 만듬
- utorrent.exe가 실행 중이라면 마그넷 주소 추가를 눌러 토렌트를 추가
스크립트 최초 실행시 클립보드 내용을 비웁니다.
옵션값을 btih: 로 저장합니다. utorrent 마그넷 주소용입니다.
OnClipboardChange 라벨을 이용합니다.
Trim함수로 앞뒤 빈칸들을 제거합니다. (생략해도 될듯)
RegExMatch로 해쉬코드 패턴의 최소 32자리에서 최대 40자리의 영문,숫자 조합의 문자열을 찾습니다.
있으면 찾은 해쉬코드값으로 마그넷 주소를 조합합니다. (트래커 포함)
툴팁으로 1초간 알립니다.
utorrent.exe 토렌트 프로그램이 실행 중이라면 마그넷 주소 추가를 비활성 클릭합니다.
별 내용이 없습니다.
아래는 코드와 스크립트 파일입니다.
#Persistent
Clipboard:=
option:="btih:" ; BTIH (BitTorrent Info Hash)
;~ option:="tree:tiger:" ; TTH (Tiger Tree Hash)
;~ option:="sha1:" ; SHA-1 (Secure Hash Algorithm 1)
;~ option:="bitprint:" ; BitPrint
;~ option:="ed2k::" ; ED2K (eDonkey2000) Hash
;~ option:="aich:" ; AICH (Advanced Intelligent Corruption Handler)
;~ option:="kzhash:" ; Kazaa Hash
;~ option:="md5:" ; MD5 (Message Digest 5)
OnClipboardChange:
If !Clipboard
return
Clipboard:=Trim(Clipboard)
winID:=WinExist("ahk_exe utorrent.exe")
if ( RegExMatch(clipboard,"O)([a-zA-Z0-9]{32,40})",subp) > 0 ){
clipboard:="magnet:?xt=urn:" option subp[0] "&tr=http://thetracker.org:80/announce&tr=udp://tracker.opentrackr.org:1337&tr=udp://thetracker.org.:80"
ToolTip, 해시 감지! 마그넷 주소로 변환!
IfWinExist, ahk_id %winID%
ControlClick, ToolbarWindow322, ahk_id %winID%,,,,NA x50 y20
Sleep,1000
ToolTip
}
return
응용하면 업무에서 클립보드에 숫자가 들어오면 더하든 곱하든 나누든 계산의 결과값으로 만들수있겠구요.
필요한건 "정규표현식"이겠네요.
http://regexr.com/ 여기서 테스트와 연습을 해보면 필요한 만큼 금방 익힐수있습니다.
A label named OnClipboardChange (if it exists) is launched automatically whenever any application (even the script itself) has changed the contents of the clipboard. The label also runs once when the script first starts.