반응형
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Import Files ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#Include E:\Documents\Lib.ahk
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Default Settings ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 기본 마우스 속도 설정
SetDefaultMouseSpeed, 0
;루트 드라이브 선택
global drive := "E:\"
global rootPath := "dropbox\"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; GetMousePosition Realtime ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Timer to check mouse position
SetTimer, CheckMouse, 100
#Persistent
#SingleInstance force
SetTitleMatchMode 2
WinGetPos,,,Xmax,Ymax,ahk_class Progman ; get desktop size
Xcenter := Xmax/2 ; Calculate center of screen
Ycenter := Ymax/2
CheckMouse: ; check mouse position
CoordMode, Mouse, Screen
MouseGetPos, MouseX, MouseY
WinGetActiveStats, Title, Width, Height, X, Y
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Functions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 경로 확인 및 실행
run(path)
{
If FileExist(path)
Run, %path%
else
MsgBox, %path% 경로가 없습니다.
return
}
;창 활성화 될때까지 기다리기
waitWin(processID)
{
WinWait, %processID%
WinActivate, %processID%
WinWaitActive, %processID%
return ErrorLevel
}
; 프로세스 확인
ProcessExist(Name)
{
Process,Exist,%Name%
return Errorlevel
}
; 클립보드 내용 가져오기
copyClipBoard()
{
IsClipEmpty := (Clipboard = "") ? 1 : 0
if !IsClipEmpty
{
ClipboardBackup := ClipboardAll
While !(Clipboard = "")
{
Clipboard =
Sleep, 10
}
}
Send, ^c
ClipWait, 0.1
ClipContents := Clipboard, Clipboard := ClipboardBackup
return ClipContents
}
;SpeQ 실행, 없는 경우 윈도우 계산기 실행
calc()
{
if FileExist("C:\Program Files (x86)\SpeQ Mathematics\SpeQ Mathematics.exe")
{
If WinExist("ahk_class IBasicWndClass")
WinActivate ahk_class IBasicWndClass
else
Run, C:\Program Files (x86)\SpeQ Mathematics\SpeQ Mathematics.exe
}
else if FileExist(drive . "\" . rootPath . "\programs\SpeQ Mathematics\SpeQ Mathematics.exe")
{
If WinExist("ahk_class IBasicWndClass")
WinActivate ahk_class IBasicWndClass
else
Run, %drive%\%rootPath%\programs\SpeQ Mathematics\SpeQ Mathematics.exe
}
else
{
Run, calc
}
WinActivate ahk_class IBasicWndClass
return
}
;notepad++로 파일 열기
open_with_notepad()
{
ToReturn := copyClipBoard()
ifNotExist, %ToReturn%
return
if !IsClipEmpty
ClipWait, 0.5, 1
If FileExist("C:\Program Files (x86)\Notepad++\notepad++.exe")
Run, C:\Program Files (x86)\Notepad++\notepad++.exe %ToReturn%
else
Run, %drive%\%rootPath%\programs\Notepad++\notepad++.exe "%ToReturn%"
return
}
;vscode로 파일 열기
open_with_vscode()
{
ToReturn := copyClipBoard()
ifNotExist, %ToReturn%
return
if !IsClipEmpty
ClipWait, 0.5, 1
Run, C:\Users\valen\AppData\Local\Programs\Microsoft VS Code\Code.exe "%ToReturn%"
return
}
;notepad++ 실행
notepad()
{
IfWinNotExist ahk_class Notepad++
{
If FileExist("C:\Program Files (x86)\Notepad++\notepad++.exe")
Run, C:\Program Files (x86)\Notepad++\notepad++.exe
else
Run, %drive%\%rootPath%\programs\Notepad++\notepad++.exe
waitWin("ahk_class Notepad++")
}
else
{
WinActivate ahk_class Notepad++
}
return
}
;vscode 실행
vscode()
{
IfWinNotExist ahk_exe Code.exe
{
Run, C:\Users\valen\AppData\Local\Programs\Microsoft VS Code\Code.exe
waitWin("ahk_class Notepad++")
}
else
{
WinActivate ahk_exe Code.exe
}
return
}
top()
{
WinGetActiveTitle, title
WinGet, ExStyle, ExStyle, %title%
if (ExStyle & 0x8)
{
WinSet, AlwaysOnTop, Off, %title%
SplashTextOn 400, 100, 항상 위 설정, %title% 해제
sleep, 300
SplashTextOff
return
}
else
{
WinSet, AlwaysOnTop, On, %title%
SplashTextOn 400, 100, 항상 위 설정, %title% 활성화
sleep, 300
SplashTextOff
return
}
return
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Global Hotkey ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;ahk 리로드
^!r::
{
SplashTextOn 150, 50, AHK, AHK Reload
Sleep 500
Reload
return
}
;스티키패드
#a::Send, #n
;계산기 실행
#c::calc()
;캡쳐 실행
#k::
{
If FileExist("C:\Program Files (x86)\PicPick\picpick.exe")
Run, C:\Program Files (x86)\PicPick\picpick.exe
else
Run, %drive%\%rootPath%\programs\picpick\picpick.exe
return
}
;가상 데스크탑 변경
#+a::
{
sendevent {LWin down}{LCtrl down}{Left}{LWin up}{LCtrl up}
return
}
#+z::
{
sendevent {LWin down}{LCtrl down}{Right}{LWin up}{LCtrl up}
return
}
;메모장 열기
^!m::Run, notepad
;사운드 디바이스 변경 (Monitor)
#+1::
{
Run, mmsys.cpl
waitWin("소리 ahk_class #32770")
Send, {down}
Send, !s
Send, {ESC}
return
}
;사운드 디바이스 변경 (Headphone)
#+2::
{
Run, mmsys.cpl
waitWin("소리 ahk_class #32770")
Send, {down}{down}
Send, !s
Send, {ESC}
return
}
;Editor로 열기
F1::open_with_vscode()
+F1::open_with_notepad()
;Notepad++로 선택된 파일 열기
^!e::notepad()
^!q::vscode()
;창 항상 위 설정/해제
!a::
{
If Not (WinActive("ahk_class PotPlayer32") or WinActive("ahk_class PotPlayer64"))
top()
return
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Special Window ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;메모장인 경우
#If WinActive("ahk_class Notepad")
{
^d::
{
Send, {home 2}{shift down}{end}{right}{shift up}{backspace}
return
}
!up::
{
Send, {end}{shift down}{up}{home 2}{shift up}
tmp := copy()
tmpPaste(mv())
return
}
}
;WinMerge 실행
#IfWinNotActive ahk_class SWT_Window0 ;Eclipse 예외 처리
{
^!c::
If FileExist("C:\Program Files (x86)\WinMerge\WinMergeU.exe")
Run("C:\Program Files (x86)\WinMerge\WinMergeU.exe")
else
Run("%drive%\%rootPath%\Programs\WinMergePortable\WinMergePortable.exe")
WinWait ahk_class WinMergeWindowClassW
Send, ^n
return
}
;Foxit Reader 이전 위치 이동
#IfWinActive ahk_class classFoxitReader
{
^-::Send, !{Left}
^+-::Send, !{Right}
return
}
;Visual Studio 단축키 설정
#IfWinActive Microsoft Visual Studio
{
^d::
Send, ^d
return
^!up::
Save := Clipboard
Send ^c^v{up}
Sleep, 200
Clipboard := Save
return
^!down::
Save := Clipboard
Send ^c^v
Sleep, 200
Clipboard := Save
return
!up::
Save := Clipboard
Send ^l{up}^v{up}
Sleep, 200
Clipboard := Save
return
!down::
Save := Clipboard
Clipboard:=""
Send {down}^l{up}^v
Sleep, 200
Clipboard :=Save
return
^up::
Send !{up}
return
^down::
Send !{down}
return
^+c:: ;주석 처리
Send, ^k^c
return
Pause::
Send, ^{vk03sc045}
return
^w:: ;내부 창 종료
Send, ^{F4}
return
+F9:: ;중단점 설정 및 조건 설정 창 활성화
CoordMode, Mouse, Relative
Send, {F9}
sleep, 10
Send, {AppsKey}
sleep, 10
Send, b
sleep, 10
Send, c
return
+F10:: ;중단점 설정 및 조건 설정 창 활성화
CoordMode, Mouse, Relative
Send, {AppsKey}
sleep, 10
Send, b
sleep, 10
Send, c
return
}
;이클립스 프로그램 실행중인 경우
#IfWinActive ahk_class SWT_Window0
{
F3::Send, ^k
+F3::Send, +^k
return
}
;mp3tag 프로그램 실행중인 경우
#IfWinActive ahk_exe Mp3tag.exe
{
; mp3gain copy title
F3::
{
Send, {F2}{tab}^c{esc}{down}{f2}{tab}^v{enter}{esc}
return
}
; mp3gain copy artist
F4::
{
Send, {F2}{tab}{tab}^c{esc}{down}{f2}{tab}{tab}^v{enter}{esc}
return
}
}
lib.ahk
global TMP_CLIPBOARD
global ccpArray := Array()
copy()
{
backupClip := ClipboardAll
Send, ^c
ClipWait, 0.1
TMP_CLIPBOARD := Clipboard
Clipboard := backupClip
return TMP_CLIPBOARD
}
paste()
{
backupClip := ClipboardAll
Clipboard := TMP_CLIPBOARD
Send, ^v
Clipboard := backupClip
return
}
tmpPaste(target)
{
backupClip := ClipboardAll
Clipboard := target
Send, ^v
Clipboard := backupClip
return
}
parse()
{
Loop, parse, TMP_CLIPBOARD, `n
{
ccpArray[A_Index] := A_LoopField
}
return
}
cp()
{
newLine = `r`n
res := TMP_CLIPBOARD . newLine . TMP_CLIPBOARD
return res
}
mv()
{
parse()
arg1 := StrReplace(ccpArray[1], "`r")
arg2 := StrReplace(ccpArray[2], "`r")
newLine = `r`n
res := arg2 . newLine . arg1
return res
}
반응형
'환경설정 모음' 카테고리의 다른 글
각종 개발 프로그램들과 플러그인 (0) | 2018.04.25 |
---|---|
오프라인에서 Visual Studio 2017 Community 설치파일 다운로드 명령어 (0) | 2018.03.28 |
비주얼 스튜디오의 단축키를 이클립스 단축키처럼 만들기 (1) | 2013.10.28 |
[Apache] 가상 호스트 설정 (0) | 2012.12.18 |
[이클립스] 단축키 (0) | 2012.12.13 |