<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AutoHotkey: Управление Winamp'ом]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=75&amp;type=atom" />
	<updated>2006-07-25T14:26:06Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=75</id>
		<entry>
			<title type="html"><![CDATA[AutoHotkey: Управление Winamp'ом]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=147#p147" />
			<content type="html"><![CDATA[<p>Я, когда сижу за компом, почти всегда что-нибудь слушаю (не обязательно музыку). Юзаю Winamp. При этом, на мой взгляд, управлять им с клавиатуры несравнимо удобнее, чем тыкать мышью. С Winamp&#039;ом поставляется плагинчик, для назначения горячих клавиш. Однако он не так гибок в назначении нужных клавиш. Кроме того, он отъедает ресурсы компа (скрипт, конечно, тоже, но скрипт все равно у меня постоянно загружен, так что плюс-минус десяток хоткеев&nbsp; - роли не играют). Мне удобно управлять Winamp&#039;ом с цифровой клавиатуры, однако, надеюсь, что вы не станете стесняться переназначить клавиши на свой вкус <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />.<br />В предлагаемом скрипте я урезал управление громкостью, чтобы не загромождать идею <img src="//forum.script-coding.com/img/smilies/big_smile.png" width="15" height="15" />.</p><div class="codebox"><pre><code>;*****************************************************************************
; AutoHotkey Version:   1.0.41.01+
; Автор:                Androgen Belkin
; Имя скрипта:          ControlsWinamp.ahk (v.2.1)
;*****************************************************************************
; Управление Winamp&#039;ом с NamPad&#039;а (цифровая клавиатура).
;*****************************************************************************
#NoTrayIcon        ; не отображать иконку скрипта в трее
#NoEnv          ; запрещаем имена переменных как у переменных окружения (повышаем производительность скрипта)
SendMode Input     ; новый режим высылки без задержки и повышенной надежности
DetectHiddenWindows, On    ; искать в скрытых окнах (если Winamp свернут)

; ========== НАСТРОЙКИ ПОЛЬЗОВАТЕЛЯ ==========
Winamp_Path = D:\Program_2\Winamp\winamp.exe ; путь к Winamp&#039;у
Vol_Step = 4 ; на сколько процентов изменять громкость за один раз
; ========== КОНЕЦ НАСТРОЕК ПОЛЬЗОВАТЕЛЯ ==========

$Numpad0:: Send, {Numpad0} ; высылать Numpad0 всегда, кроме тех случаев, когда он используется в горячих клавишах
$NumpadIns:: Send, {NumpadIns} ; высылать NumpadIns всегда, кроме тех случаев, когда он используется в горячих клавишах
$NumLock:: Send, {NumLock} ; высылать NumLock всегда, кроме тех случаев, когда он используется в горячих клавишах

; ========== ЗАПУСТИТЬ WINAMP ==========
;-----------------------------------------------------------------------------
NumpadIns &amp; NumpadEnter:: ; запустить winamp
Numpad0 &amp; NumpadEnter:: ; запустить winamp
Launch_Media:: ; обработка мультимедийной клавы
;-----------------------------------------------------------------------------
    IfNotExist, %Winamp_Path% ; если НЕ существует указанный файл для запуска, то...
        Return ; закончить обработку горячей клавиши
; Если путь указан верно, то...
    Process, Exist, Winamp.exe ; проверить существование процесса
    If ErrorLevel &lt;&gt; 0 ; если Winamp уже запущен, то...
        WinActivate, ahk_class Winamp v1.x ; активировать окно
    ; если не запущен, то...
    Run, %Winamp_Path% ; запустить
Return ; закончить обработку горячей клавиши
;-----------------------------------------------------------------------------


; ========== ЗАКРЫТЬ WINAMP ==========
;-----------------------------------------------------------------------------
NumpadIns &amp; NumpadDel:: ; закрыть winamp
Numpad0 &amp; NumpadDot:: ; закрыть winamp
;-----------------------------------------------------------------------------
    PostMessage, 0x111, 40001,,, ahk_class Winamp v1.x ; закрыть Winamp
Return ; закончить обработку горячей клавиши
;-----------------------------------------------------------------------------


; ========== ВОСПРОИЗВЕДЕНИЕ/ПАУЗА ==========
;-----------------------------------------------------------------------------
NumpadIns &amp; NumpadClear:: ; воспроизведение/пауза
Numpad0 &amp; Numpad5:: ; воспроизведение/пауза
Media_Play_Pause:: ; обработка мультимедийной клавы
;-----------------------------------------------------------------------------
SendMessage, 0x400,, 104,, ahk_class Winamp v1.x ; проверка воспроизведения
    If ErrorLevel = 0 ; если не воспроизводится, то...
        PostMessage, 0x111, 40045,,, ahk_class Winamp v1.x ; включить воспроизведение
    Else ; если воспроизводится, то...
        PostMessage, 0x111, 40046,,, ahk_class Winamp v1.x ; поставить на паузу
Return ; закончить обработку горячей клавиши
;-----------------------------------------------------------------------------


; ========== ВОСПРОИЗВЕДЕНИЕ/ПАУЗА ПРОБЕЛОМ ==========
;-----------------------------------------------------------------------------
~Space:: ; воспроизведение/пауза (если активно окно Winamp)
;-----------------------------------------------------------------------------
    IfWinActive, ahk_class BaseWindow_RootWnd ; если активное окно - Winamp
    {
        SendMessage, 0x400,, 104,, ahk_class Winamp v1.x ; проверка воспроизведения
        If ErrorLevel = 0 ; если не воспроизводится, то...
            PostMessage, 0x111, 40045,,, ahk_class Winamp v1.x ; включить воспроизведение
        Else ; если воспроизводится, то...
            PostMessage, 0x111, 40046,,, ahk_class Winamp v1.x ; поставить на паузу
    }
Return ; закончить обработку горячей клавиши
;-----------------------------------------------------------------------------


; ========== ПРЕДЫДУЩИЙ ТРЕК ==========
;-----------------------------------------------------------------------------
NumpadIns &amp; NumpadLeft:: ; предыдущий трек
Numpad0 &amp; Numpad4:: ; предыдущий трек
Media_Prev:: ; обработка мультимедийной клавы
;-----------------------------------------------------------------------------
    PostMessage, 0x111, 40044,,, ahk_class Winamp v1.x ; предыдущий трек
Return ; закончить обработку горячей клавиши
;-----------------------------------------------------------------------------


; ========== СЛЕДУЮЩИЙ ТРЕК ==========
;-----------------------------------------------------------------------------
NumpadIns &amp; NumpadRight:: ; следующий трек
Numpad0 &amp; Numpad6:: ; следующий трек
Media_Next:: ; обработка мультимедийной клавы
;-----------------------------------------------------------------------------
    PostMessage, 0x111, 40048,,, ahk_class Winamp v1.x ; следующий трек
Return ; закончить обработку горячей клавиши
;-----------------------------------------------------------------------------


; ========== НАЗАД НА 5 СЕКУНД ==========
;-----------------------------------------------------------------------------
NumpadIns &amp; NumpadHome:: ; назад на 5 секунд
Numpad0 &amp; Numpad7:: ; назад на 5 секунд
^Media_Prev:: ; обработка мультимедийной клавы (CTRL+)
;-----------------------------------------------------------------------------
    PostMessage, 0x111, 40144,,, ahk_class Winamp v1.x ; назад на 5 секунд
Return ; закончить обработку горячей клавиши
;-----------------------------------------------------------------------------


; ========== ВПЕРЕД НА 5 СЕКУНД ==========
;-----------------------------------------------------------------------------
NumpadIns &amp; NumpadPgUp:: ; вперед на 5 секунд
Numpad0 &amp; Numpad9:: ; вперед на 5 секунд
^Media_Next:: ; обработка мультимедийной клавы (CTRL+)
;-----------------------------------------------------------------------------
    PostMessage, 0x111, 40148,,, ahk_class Winamp v1.x ; вперед на 5 секунд
Return ; закончить обработку горячей клавиши
;-----------------------------------------------------------------------------


; ============== ОСТАНОВИТЬ ===============
;-----------------------------------------------------------------------------
NumpadIns &amp; NumpadEnd:: ; остановить
Numpad0 &amp; Numpad1:: ; остановить
Media_Stop:: ; обработка мультимедийной клавы
;-----------------------------------------------------------------------------
    PostMessage, 0x111, 40047,,, ahk_class Winamp v1.x ; остановить воспроизведение
Return ; закончить обработку горячей клавиши
;-----------------------------------------------------------------------------


; ========== ВОСПРОИЗВОДИТЬ ВРАЗБРОС =============
;-----------------------------------------------------------------------------
NumLock &amp; NumpadMult:: ; воспроизводить вразброс (включить/выключить)
;-----------------------------------------------------------------------------
    PostMessage, 0x111, 40023,,, ahk_class Winamp v1.x ; воспроизводить вразброс
Return ; закончить обработку горячей клавиши
;-----------------------------------------------------------------------------


; ========== СВЕРНУТЬ/РАЗВЕРНУТЬ ==========
;-----------------------------------------------------------------------------
NumpadIns &amp; NumpadMult:: ; свернуть/развернуть
Numpad0 &amp; NumpadMult:: ; свернуть/развернуть
WinAmp_Min_Restore: ; метка входа из WIN+S (она понадобится, если использовать скрипт для управления окнами)
;-----------------------------------------------------------------------------
    WinGet, State, MinMax, ahk_class Winamp v1.x
    If State = -1 ; если окно минимизировано, то...
        WinActivate, ahk_class Winamp v1.x ; восстановить свернутое окно
    Else ; если окно НЕ минимизировано, то...
    {
        IfWinActive, ahk_class BaseWindow_RootWnd ; если окно активно, то...
            WinMinimize, ahk_class Winamp v1.x ; свернуть окно
        Else ; если окно НЕ активно, то...
            WinActivate, ahk_class Winamp v1.x ; активизировать окно (вывести на передний план)
    }
Return ; закончить обработку горячей клавиши
;-----------------------------------------------------------------------------


; ========== ДИАЛОГ ОТКРЫТИЯ ФАЙЛОВ ==========
;-----------------------------------------------------------------------------
NumpadIns &amp; NumpadDiv:: ; диалог открытия файлов
Numpad0 &amp; NumpadDiv:: ; диалог открытия файлов
;-----------------------------------------------------------------------------
    WinActivate, ahk_class Winamp v1.x ; активизировать окно
    PostMessage, 0x111, 40029,,, ahk_class Winamp v1.x ; открытие окна открытия
Return ; закончить обработку горячей клавиши
;-----------------------------------------------------------------------------


; ========== ОКНО - ПОВЕРХ ВСЕХ ==========
;-----------------------------------------------------------------------------
NumpadIns &amp; NumpadUp:: ; окно winamp - поверх всех
Numpad0 &amp; Numpad8:: ; окно winamp - поверх всех
;-----------------------------------------------------------------------------
    PostMessage, 0x111, 40019,,, ahk_class Winamp v1.x ; окно - поверх всех
Return ; закончить обработку горячей клавиши
;-----------------------------------------------------------------------------


; ========== ПОКАЗАТЬ/СКРЫТЬ ПЛЕЙ-ЛИСТ ==========
;-----------------------------------------------------------------------------
NumpadIns &amp; NumpadDown:: ; показать/скрыть плей-лист
Numpad0 &amp; Numpad2:: ; показать/скрыть плей-лист
;-----------------------------------------------------------------------------
    PostMessage, 0x111, 40040,,, ahk_class Winamp v1.x ; показать/скрыть плей-лист
Return ; закончить обработку горячей клавиши
;-----------------------------------------------------------------------------


; ========== УДАЛИТЬ ФАЙЛ С ДИСКА =============
;-----------------------------------------------------------------------------
~+DEL:: ; SHIFT+DEL - удалить файл с диска
;-----------------------------------------------------------------------------
    IfWinActive, Playlist Editor ; если активно окно &quot;Playlist Editor&quot;
    {
        Send, !+{DEL} ; нажать ALT+SHIFT+DEL (удалить файлы с диска)
        KeyWait, DEL ; ожидать пока клавиша не будет отпущена (чтобы исключить срабатывание от простого удержания нажатой клавиши)
    ; ========== ... И СОХРАНЕНИЕ ПЛЕЙ-ЛИСТА =============
;~          Send, ^{sc01F} ; выслать CTRL+S (сохранить плей-лист)
    }
Return ; закончить обработку горячей клавиши
;-----------------------------------------------------------------------------


; ========== ВЫКЛЮЧИТЬ ЗВУК =============
;-----------------------------------------------------------------------------
NumLock &amp; NumpadSub:: ; выключить звук
;-----------------------------------------------------------------------------
    SoundSet, 1,, Mute ; выключить все звуковые устройства
Return ; закончить обработку горячей клавиши
;-----------------------------------------------------------------------------


; ========== ВКЛЮЧИТЬ ЗВУК =============
;-----------------------------------------------------------------------------
NumLock &amp; NumpadAdd:: ; включить звук
;-----------------------------------------------------------------------------
    SoundSet, 0,, Mute ; включить все звуковые устройства
Return ; закончить обработку горячей клавиши
;-----------------------------------------------------------------------------


; ========== УМЕНЬШИТЬ ГРОМКОСТЬ =============
;-----------------------------------------------------------------------------
NumpadIns &amp; NumpadSub:: ; уменьшить громкость
Numpad0 &amp; NumpadSub:: ; уменьшить громкость
;-----------------------------------------------------------------------------
    IfWinExist, ahk_class Winamp v1.x
        Loop, %Vol_Step%
            PostMessage, 0x111, 40059,,, ahk_class Winamp v1.x ; уменьшить звук
Return ; закончить обработку горячей клавиши
;-----------------------------------------------------------------------------


; ========== УВЕЛИЧИТЬ ГРОМКОСТЬ =============
;-----------------------------------------------------------------------------
NumpadIns &amp; NumpadAdd:: ; увеличить громкость
Numpad0 &amp; NumpadAdd:: ; увеличить громкость
;-----------------------------------------------------------------------------
    IfWinExist, ahk_class Winamp v1.x
        Loop, %Vol_Step%
            PostMessage, 0x111, 40058,,, ahk_class Winamp v1.x ; увеличить звук
Return ; закончить обработку горячей клавиши
;-----------------------------------------------------------------------------</code></pre></div><p><strong>А <a href="http://forum.script-coding.com/viewtopic.php?id=451">здесь</a> можно посмотреть и взять скрипт, совмещающий управление Foobar&#039;ом и WinAmp&#039;ом</strong></p>]]></content>
			<author>
				<name><![CDATA[Androgen]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=4</uri>
			</author>
			<updated>2006-07-25T14:26:06Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=147#p147</id>
		</entry>
</feed>
