1

Тема: AHK: Управленик громкостью при помощи мыши

Здравствуйте.
Хочу сделать следующее:
при нажатой правой кнопке мыши скролл вверх повышает громкость, а вниз - уменьшает.
Казалось бы, проблем быть не должно:

$Rbutton::Send, {Rbutton}
Rbutton & WheelUp::{Volume_Up}
Rbutton & WheelDown::{Volume_Down}

И все, вроде бы, хорошо работает, за одним небольшим исключением - теперь нельзя переместить что-либо при помощи правой кнопки мыши (перетащить в нужное место, например). Как мне кажется, проблема в этой строчке:

$Rbutton::Send, {Rbutton}

Кто-нибудь поможет в поиске решениия?

2 (изменено: creature.ws, 2012-08-16 20:04:11)

Re: AHK: Управленик громкостью при помощи мыши

А если так:

~Rbutton & WheelUp::Send, {Volume_Up}
~Rbutton & WheelDown::Send, {Volume_Down}

3 (изменено: gleam, 2012-08-16 21:53:18)

Re: AHK: Управленик громкостью при помощи мыши

creature.ws,
большое спасибо, помогло
А можно теперь сразу после выполнения действия (изменение громкости) убрать контекстное меню (которое после ПКМ появляется)?

4

Re: AHK: Управленик громкостью при помощи мыши

~RButton UP::
    If A_PriorHotkey ~= "Si)WheelDown|WheelUp"
        Send {Esc}
    return

#If GetKeyState("RButton", "P")
    WheelDown::Send {Volume_down}
    WheelUp::Send {Volume_up}
#If

5

Re: AHK: Управленик громкостью при помощи мыши

Теперь все совсем плохо

Собственно, вопрос номер один - почему так происходит?
Этот кусок не работает:

~RButton UP::
  MsgBox %A_PriorHotkey%
  If ((A_PriorHotkey == "$WheelDown") or (A_PriorHotkey == "$WheelUp")) {
    SoundBeep, 10000, 100
    ;Send {Esc}
  }
return

MsgBox всегда пишет ~RButton UP.

НО этот же кусок работает, если дописать в начале

  $WheelDown::Send, {WheelDown}
  $WheelUp::Send, {WheelUp}

И вопрос номер два. Почему код, расположенный внутри IF работает всегда, вне зависимости от своего условия:

If (GetKeyState("RButton", "D")) {
  WheelDown::SoundBeep, 50, 100
  WheelUp::SoundBeep, 50, 100
}

6 (изменено: creature.ws, 2012-08-17 00:44:11)

Re: AHK: Управленик громкостью при помощи мыши

«Творческая обработка» кода пошла не тем путём.
Оба ваши вопроса неуместны, так как возникли в результате неверного редактирования рабочего примера.

Используйте актуальную версию AutoHotkey_L - 1.1.08.01

7 (изменено: gleam, 2012-08-17 10:58:01)

Re: AHK: Управленик громкостью при помощи мыши

Прошу прощения, я думал, что это не рабочий пример, а алгоритм - "это должно быть примерно так".
Спасибо!
Только я так и не разобрался - как работает эта строчка:

If A_PriorHotkey ~= "Si)WheelDown|WheelUp"

А именно, фрагменты: ~= и Si)

8 (изменено: Mikki, 2012-08-17 16:25:32)

Re: AHK: Управленик громкостью при помощи мыши

[IMHO]В свое время я отказался от ПравойкнопкиМыши - в качестве первой горячей клавиши. Как раз из-за проблем с контекстным меню. В качестве примера - у меня громкость регулируется когда крутишь колесико скролла над панелькой TaskBar-a. Сейчас, по прошествии времени, уже думаю можно сделать просто - относительно глобальных координат экрана - в левом верхнем углу.[/IMHO]

Жизнь стоит того чтобы не быть сволочью. (с) Разные Люди

9

Re: AHK: Управленик громкостью при помощи мыши

Mikki,
а какие возникли проблемы? Сейчас все работает как надо, по крайней мере, на первый взгляд...

10

Re: AHK: Управленик громкостью при помощи мыши

~=, S, i.
InStr тоже подходит.

11

Re: AHK: Управленик громкостью при помощи мыши

С Si вроде бы разобрался, но про ~= так и не понял...
Не могли бы вы словами описать для чего оно нужно?

12

Re: AHK: Управленик громкостью при помощи мыши

Желаете прослушать пересказ справки своими словами — увольте.

13

Re: AHK: Управленик громкостью при помощи мыши

creature.ws,
тьфу ты, блин, я слеповат под вечер становлюсь
Прочитал в справке про Bitwise-not (~) и долго пытался понять - зачем оно тут нужно...
Спасибо большое за отправление обратно в справку, теперь разобрался.