AutoHotKey

AHK_L 예제소스

by 디케 posted Feb 10, 2011
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

AHK_L 예제소스




■ 표준입출력 

; ---- stdout.ahk ---- 
stdout := FileOpen(DllCall("GetStdHandle""int", -11, "ptr"), "`n"
Loop, 10 
    stdout.WriteLine(A_Index . "항목"
; ---- stdin.ahk ---- 
stdin := FileOpen(DllCall("GetStdHandle""int", -10, "ptr"), "`n"
While !stdin.AtEOF() 
    q .= stdin.ReadLine() 
MsgBox, % q 

사용예) 스크립트가 위치한 디렉토리에서 cmd로 다음과 같이 실행 
> set ahk="C:\Program Files\AutoHotkey\AutoHotkey.exe" 
> %ahk% stdout.ahk | %ahk% stdin.ahk 


■ 메뉴에 아이콘 표시 

Loop, 3 { 
    Menu, M1, Add, 항목%A_Index%, Dummy 
    Menu, M1, Icon, 항목%A_Index%, %A_WinDir%\Explorer.exe, %A_Index% ; , 32|64 

Menu, M1, Show 
Dummy: 
Return 

※ 주석을 제거하고 32나 64를 지정하면 큰 아이콘도 표시 가능 


■ 탐색기에서 선택중인 파일의 풀패스를 복사 
    COM을 사용하므로 특수 폴더가 있어도 가능 

SetTitleMatchMode, RegEx 
#IfWinActive, ahk_class CabinetWClass|ExploreWClass 
#c:: 
FileList:= 
For window in ComObjCreate("Shell.Application").Windows 
    If (window.hwnd == WinExist()) { 
        For item in window.document.SelectedItems 
        FileList .= item.path "`n" 
        Break 
    } 
Clipboard:=FileList, window:=item:= 
Return 


■ 활성화된 어플리케이션의 실행파일이 위치한 폴더를 열기 

#z:: ; Win + z 
WinGet, pid, PID, A 
For process in ComObjGet("winmgmts:").ExecQuery("SELECT * FROM Win32_Process WHERE ProcessId='" pid "'"
    Run, % "explorer.exe /select`,""" . (process.ExecutablePath) . """" 
process := 
Return 


■ IE 자동화 

ie := ComObjCreate("InternetExplorer.Application"
ie.Visible := True 
ie.Navigate("http://www.google.co.kr/"
While ie.Busy() 
    Sleep, 50 
MsgBox, 로드 완료`n`n폼에 문자를 입력합니다. 
form := ie.document.GetElementsByTagName("FORM")[0] 
form.q.value := "AutoHotkey" 
MsgBox, 폼 송신 완료 
form.submit() 
While ie.Busy() 
    Sleep, 50 
MsgBox, 검색결과가 표시되었습니다.`n`n종료합니다. 
form:="" 
ie.Quit() ; 종료시키지 않으면 iexplore.exe 프로세스가 남으므로 주의 


■ AutoHotkey.dll을 이용한 멀티스레드 

미리 AutoHotkey.dll를 다운로드하여, 모듈등록을 할 필요가 있음 
(DLL이 있는 디렉토리에서 "regsvr32.exe AutoHotkey.dll"을 실행) 

code := "#NoTrayIcon`nMsgBox, Thread #" 
Loop, 10 { 
    ComObjCreate("AutoHotkey.Script").AhkTextDll(code . A_Index) 
    Sleep, 100 
}