Michael님 또는 AutoHotKey 스크립트 보실 줄 아는 분 좀 봐주셔요 ^^;

시간과 노력 투자하셔서 만드신 스크립트를 공개해주신

Michael님께 정말 감사드립니다.

 

올려주신 스크립트를 기반으로 제가 사용하는 환경에 맞게 일부 수정을 했는데요,

 

수정한 부분은

 

1. 마스터/웨이브 볼륨바 색을 바꾸었고, 위치도 바꾸었습니다(바가 나타나는 위치도 조금 내렸고요...)

2. 볼륨조절이 마우스 커서가 태스크 바에 올라가 있을 때에만 되던 것을, 아무 위치에서나 작동하도록 바꾸었습니다.

3. 키 조합을 컨트롤과 시프트에서, 컨트롤(마스터볼륨), 알트(웨이브볼륨), 윈도우키(마스터+웨이브)로 바꾸었습니다.

4. 마우스 휠로만 조절되던 볼륨을 키보드 방향키로도 조절되도록 바꾸었습니다.

5. 볼륨바가 나타나는 관계로 따로 딩사운드는 필요 없을 것 같아서, 딩 사운드는 뮤트시켰습니다.

 

이러한 것들을 바꾸었는데요...

제가 일단 해보니 되는 것 같기는 한데...

제가 프로그래밍을 전혀 몰라서 이게 문제가 있는 것인지 없는 것인지 소스만 보고는 알지를 못합니다.

수정도 코드를 보고 해독(?)을 해서 수정한 것인지라...

 

아래의 코드를 보시고 혹 제가 잘못 건드려놓아서 문제될만한 곳이 있는지 좀 보아주시면 감사드리겠습니다. (__)

 

복받으세요~

 

 

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Description
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; On TaskBar or Not On TaskBar
; WindowsKey + (Wheel) Up/Down   : Master&Wave Up/Down
; Ctrl + (Wheel) Up/Down         : Master Volume Up/Down
; Alt  + (Wheel) Up/Down         : Wave   Volume Up/Down
; Ctrl + Alt + (Wheel) Up/Down   : Master&Wave Mute
; No Ding Sound
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Originally Made by Michael Kim + Revised by GON
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;esc::EXITAPP               ; used only in development

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Settings
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

VolumeDegree            = 3
BarWidth                = 80
BarHeight               = 10
BarColorWaveDefault     = Fuchsia
BarColorMastDefault     = Lime
BackColorDefault        = White
BarShowTime             = 1000          ; milli-seconds
BarExist                = FALSE


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Functions
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

MouseIsOnTaskBar(ByRef iMouseX, ByRef iMouseY)
{
    CoordMode, Mouse, Screen
    MouseGetPos, iMouseX, iMouseY, id
    WinGetClass, class, ahk_id %id%

    if class = Shell_TrayWnd
        return TRUE
    else
        return TRUE ;; Editted by GON
}

ShowVolumeBar(iMouseX, iMouseY)
{
    global BarWidth
    global BarHeight
    global BarColorMastDefault
    global BarColorWaveDefault
    global BarExist
    global BarShowTime
    global BackColorDefault

    SoundGet, MastMute, MASTER, MUTE
    SoundGet, WaveMute, WAVE,   MUTE

    IF WaveMute = ON
    {
        BackColorWave   = Gray
        BarColorWave    = Black
    }
    ELSE
    {
        BackColorWave   := BackColorDefault
        BarColorWave    := BarColorWaveDefault
    }

    IF MastMute = ON
    {
        BackColorMast   = Gray
        BarColorMast    = Black
    }
    ELSE
    {
        BackColorMast   := BackColorDefault
        BarColorMast    := BarColorMastDefault
    }
   
    SoundGet, MastVol, MASTER
    SoundGet, WaveVol, WAVE


    if BarExist = FALSE
    {
        BarPosX := iMouseX - BarWidth/2
        BarPosY := iMouseY - BarHeight - 16
        Progress, 1: B X%BarPosX% Y%BarPosY% W%BarWidth% ZH%BarHeight% ZX0 ZY0 CW%BackColorMast%

CB%BarColorMast% P%MastVol%
        BarPosY := iMouseY - BarHeight - 6
        Progress, 2: B X%BarPosX% Y%BarPosY% W%BarWidth% ZH%BarHeight% ZX0 ZY0 CW%BackColorWave%

CB%BarColorWave% P%WaveVol%
        BarExist = TRUE
    }
    else
    {
        Progress, 1: %MastVol%
        Progress, 2: %WaveVol%
    }
       
    SetTimer, RemoveVolumeBar, %BarShowTime%
   
    return
}

; Timer
RemoveVolumeBar:
{
    SetTimer, RemoveVolumeBar, OFF
    Progress, 1: OFF
    Progress, 2: OFF
    BarExist = FALSE
    return
}

PlayDing()
{
;    SoundPlay, %A_WinDir%\Media\Windows XP Ding.wav  ;; Editted by GON
    return
}

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Hotkeys
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


#WheelDown::
{
    if MouseIsOnTaskBar(iMouseX, iMouseY) = TRUE
    {
        SoundSet, -%VolumeDegree%
        SoundSet, -%VolumeDegree%, WAVE
        ShowVolumeBar(iMouseX, iMouseY)
 PlayDing()
    }
    else
    {
        Send, ^{WheelDown}
    }
    return
}

#WheelUp::
{
    if MouseIsOnTaskBar(iMouseX, iMouseY) = TRUE
    {
        SoundSet, +%VolumeDegree%
        SoundSet, +%VolumeDegree%, WAVE
        ShowVolumeBar(iMouseX, iMouseY)
 PlayDing()
    }
    else
    {
        Send, ^{WheelUp}
    }
    return
}

 

#Up::
 Gosub #WheelUp
return


#Down::
 Gosub #WheelDown
return

 

^WheelDown::
{
    if MouseIsOnTaskBar(iMouseX, iMouseY) = TRUE
    {
        SoundSet, -%VolumeDegree%
        ShowVolumeBar(iMouseX, iMouseY)
 PlayDing()
    }
    else
    {
        Send, ^{WheelDown}
    }
    return
}

^WheelUp::
{
    if MouseIsOnTaskBar(iMouseX, iMouseY) = TRUE
    {
        SoundSet, +%VolumeDegree%
        ShowVolumeBar(iMouseX, iMouseY)
 PlayDing()
    }
    else
    {
        Send, ^{WheelUp}
    }
    return
}

^Up::
 Gosub ^WheelUp
return


^Down::
 Gosub ^WheelDown
return


!WheelDown::
{
    if MouseIsOnTaskBar(iMouseX, iMouseY) = TRUE
    {
        SoundSet, -%VolumeDegree%, WAVE
        ShowVolumeBar(iMouseX, iMouseY)
 PlayDing()
    }
    else
    {
        Send, +{WheelDown}
    }
    return
}

!WheelUp::
{
    if MouseIsOnTaskBar(iMouseX, iMouseY) = TRUE
    {
        SoundSet, +%VolumeDegree%, WAVE
        ShowVolumeBar(iMouseX, iMouseY)
 PlayDing()
    }
    else
    {
        Send, +{WheelUp}
    }
    return
}

!Up::
 Gosub !WheelUp
return


!Down::
 Gosub !WheelDown
return

 

^!WheelDown::
{
    if MouseIsOnTaskBar(iMouseX, iMouseY) = TRUE
    {
        SoundSet, 1, MASTER, MUTE
        SoundSet, 1, WAVE  , MUTE
        BarExist = FALSE
        ShowVolumeBar(iMouseX, iMouseY)
 PlayDing()
    }
    else
    {
        Send, ^+{WheelDown}
    }
    return
}

^!WheelUp::
{
    if MouseIsOnTaskBar(iMouseX, iMouseY) = TRUE
    {
        SoundSet, 0, MASTER, MUTE
        SoundSet, 0, WAVE, MUTE
        Gosub, RemoveVolumeBar
        ShowVolumeBar(iMouseX, iMouseY)
 PlayDing()
    }
    else
    {
        Send, ^+{WheelUp}
    }
    return
}

^!Up::
 Gosub ^!WheelUp
return


^!Down::
 Gosub ^!WheelDown
return

이전 댓글 2
Michael 2010-11-16 17:45
이거 제껀데요...
Michael 2010-11-17 21:05
우선 쓰신 글을 처음부터 다시 한 번 꼼꼼히 읽어봐주세요~~ :)
← 질문답변 목록으로