1

Тема: AHK: Проблема отправки клавиш мыши - MaxHotKeysPerInterval

Возник непонятный баг в коде. Откуда и почему так понять не могу, раньше такого не наблюдалось, все работало корректно.
Проблема:
При прокрутке вверх\вниз колесиком мыши выскакивает окошко о том, что было нажато больше, чем N количество хоткеев за последние пару мс с вопросом - Хотите ли вы продолжить?. Сама прокрутка не происходит соответственно.
Чтобы было более понятнее о чем идет речь - предлагаю ознакомиться с куском моего кода:

#NoEnv
#SingleInstance Force
#InstallKeybdHook
#InstallMouseHook
#Persistent
#KeyHistory 0
#MaxThreads 20
#MaxMem 4096
SetCapsLockState, AlwaysOff
SetWinDelay, -1
SetBatchLines, -1
SetControlDelay, -1
CoordMode, Pixel, Relative
CoordMode, Mouse, Relative
Process, priority, , Realtime

use := 0

Loop
{
IfWinActive, Skype
use = 0

IfWinNotActive, Skype
use = 1
}
Return

^WheelUp::Return
^WheelDown::Return

$vk9F::
if use = 0
 {
 if press_value = 0
    SetTimer, double_press_timer, 400

 press_value := % press_value +1

 if press_value = 2
    {
    SetDefaultMouseSpeed, 0
    SetMouseDelay, -1

    MouseGetPos, MouseX, MouseY
    MouseClick, left, 0, 0
    MouseMove, %MouseX%, %MouseY%

    SetDefaultMouseSpeed, 2
    SetMouseDelay, 0
    }
 }
if use = 1
 Send {vk9F Down}
Return


$vk9E::
if use = 1
    MouseClick,WheelDown,,,3

if use = 0
{
 if press_value = 0
    SetTimer, double_press_timer, 400

 press_value := % press_value +1

 if press_value = 2
    {
    SetDefaultMouseSpeed, 0
    SetMouseDelay, -1

    MouseGetPos, MouseX, MouseY
    MouseClick, left, 1, 1
    MouseMove, %MouseX%, %MouseY%

    SetDefaultMouseSpeed, 2
    SetMouseDelay, 0
    }
}
Return


$+MButton::
 if use = 0
     {    
    SendInput {G}
     }
if use = 1
      {
    SendInput +{MButton}
      }
KeyWait, MButton
    Send {MButton Up}
Return

double_press_timer:
    press_value = 0
    SetTimer, double_press_timer, Off
Return

Просветите почему так?
Раньше, на версии 1.1.15.02 было все нормально, но, когда я переустановил AHK на 1.1.15.02, то  ошибка не исчезла. Через #UseHook, Off пробовал, но тоже не помогло. Больше идей и не возникло..

2

Re: AHK: Проблема отправки клавиш мыши - MaxHotKeysPerInterval

http://forum.script-coding.com/viewtopi … 145#p86145

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3

Re: AHK: Проблема отправки клавиш мыши - MaxHotKeysPerInterval

Благодарю, как я этого сразу не заметил..

4

Re: AHK: Проблема отправки клавиш мыши - MaxHotKeysPerInterval

Хотя нет, ничего не изменилось

5

Re: AHK: Проблема отправки клавиш мыши - MaxHotKeysPerInterval

http://www.autohotkey.com/docs/commands … terval.htm

6

Re: AHK: Проблема отправки клавиш мыши - MaxHotKeysPerInterval

#NoEnv
#SingleInstance Force
#InstallKeybdHook
#InstallMouseHook
#Persistent
#KeyHistory 0
#MaxThreads 20
#MaxMem 4096
#HotkeyInterval 0
#MaxHotKeysPerInterval 1000
SetCapsLockState, AlwaysOff
SetWinDelay, -1
SetBatchLines, -1
SetControlDelay, -1
CoordMode, Pixel, Relative
CoordMode, Mouse, Relative
Process, priority, , Realtime

Ничего не изменилось

7 (изменено: Alectric, 2014-09-15 16:09:39)

Re: AHK: Проблема отправки клавиш мыши - MaxHotKeysPerInterval

Попробуй так:


#MaxHotkeysPerInterval,100000000000

WheelUp::
if whellwork=1
  return
whellwork=1

{
  ; код
}

whellwork=0
return
Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

8

Re: AHK: Проблема отправки клавиш мыши - MaxHotKeysPerInterval

Аналогично - не работает

9

Re: AHK: Проблема отправки клавиш мыши - MaxHotKeysPerInterval

Сделай короткий пример кода при котором не будет работать.

10 (изменено: Alectric, 2014-09-15 16:54:02)

Re: AHK: Проблема отправки клавиш мыши - MaxHotKeysPerInterval

У меня тоже была такая проблема вот с этим кодом.
Вышеприведенный пример мне помог.

Возможно что и эта строка помогла:

keywait,%a_thishotkey%,L

Так вроде не выскакивает ошибки:

#NoEnv
#SingleInstance Force
#InstallKeybdHook
#InstallMouseHook
#Persistent
#KeyHistory 0
#MaxThreads 20
#MaxMem 4096
SetCapsLockState, AlwaysOff
SetWinDelay, -1
SetBatchLines, -1
SetControlDelay, -1
CoordMode, Pixel, Relative
CoordMode, Mouse, Relative
Process, priority, , Realtime
#MaxHotkeysPerInterval,100000000000

use := 0

Loop
{
sleep,50
IfWinActive, Skype
use = 0
else
use = 1
}
Return

^WheelUp::
^WheelDown::
keywait,%a_thishotkey%,L
Return

$vk9F::
keywait,%a_thishotkey%,L
if use = 0
 {
 if press_value = 0
    SetTimer, double_press_timer, 400

 press_value +=1

 if press_value = 2
    {
    SetDefaultMouseSpeed, 0
    SetMouseDelay, -1

    MouseGetPos, MouseX, MouseY
    MouseClick, left, 0, 0
    MouseMove, %MouseX%, %MouseY%

    SetDefaultMouseSpeed, 2
    SetMouseDelay, 0
    }
 }
if use = 1
 Send {vk9F Down}
Return


$vk9E::
keywait,%a_thishotkey%,L
if use = 1
    MouseClick,WheelDown,,,3

if use = 0
{
 if press_value = 0
    SetTimer, double_press_timer, 400

 press_value +=1

 if press_value = 2
    {
    SetDefaultMouseSpeed, 0
    SetMouseDelay, -1

    MouseGetPos, MouseX, MouseY
    MouseClick, left, 1, 1
    MouseMove, %MouseX%, %MouseY%

    SetDefaultMouseSpeed, 2
    SetMouseDelay, 0
    }
}
Return


$+MButton::
 if use = 0
    SendInput {G}
 else
    SendInput +{MButton}
keywait,%a_thishotkey%,L
    Send {MButton Up}
Return

double_press_timer:
    press_value = 0
    SetTimer, double_press_timer, Off
Return

[/spoiler]

OFF:
А что за клавиши "9E" и "9F"? В списке кодов написано "Не используется".

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

11 (изменено: Странникх, 2014-09-15 17:20:46)

Re: AHK: Проблема отправки клавиш мыши - MaxHotKeysPerInterval

Malcev пишет:

Сделай короткий пример кода при котором не будет работать.

#NoEnv
#SingleInstance Force
#InstallKeybdHook
#InstallMouseHook
#Persistent
#KeyHistory 0
#MaxThreads 20
#MaxMem 4096
SetCapsLockState, AlwaysOff
SetWinDelay, -1
SetBatchLines, -1
SetControlDelay, -1
CoordMode, Pixel, Relative
CoordMode, Mouse, Relative
Process, priority, , Realtime

skype_active := 0
press_value := 0

Loop
{
sleep, 25

IfWinActive, Skype
{
skype_active = 0
}

IfWinNotActive, Skype
{
skype_active = 1
}
}
Return

$WheelUp::
if skype_active = 0
{
 ;MsgBox, Active!
 if press_value = 0
    SetTimer, double_press_timer, 400

 press_value := % press_value +1

 if press_value = 2
    {
    SetDefaultMouseSpeed, 0
    SetMouseDelay, -1

    MouseGetPos, MouseX, MouseY
    MouseClick, left, 0, 0
    MouseMove, %MouseX%, %MouseY%
    sleep, 300

    SetDefaultMouseSpeed, 2
    SetMouseDelay, 0
    }
}
if skype_active = 1
    ;MsgBox, Not Active but Hotkey is working!
    SendInput {WheelUp}
Return


$WheelDown::
if skype_active = 0
{
 ;MsgBox, Active!
if press_value = 0
    SetTimer, double_press_timer, 400

 press_value := % press_value +1

 if press_value = 2
    {
    SetDefaultMouseSpeed, 0
    SetMouseDelay, -1

    MouseGetPos, MouseX, MouseY
    MouseClick, left, 1 , 1
    MouseMove, %MouseX%, %MouseY%
    sleep, 300

    SetDefaultMouseSpeed, 2
    SetMouseDelay, 0
    }
}
if skype_active = 1
    ;MsgBox, Not Active but hotkey is working!!
    SendInput {WheelDown}
Return

double_press_timer:
    press_value = 0
    SetTimer, double_press_timer, Off
Return

У меня такой код и он работает.

Я нашел ошибку. Она возникает только тогда, когда я запускаю более одного скрипта .ahk, причем не важно, что во втором скрипте нет никаких параметров влияющих на первый скрипт.

Запустите этот код, тот что выше и еще один (любой) ahk скрипт и увидите эту ошибку, которую выдает скрипт с выше изложенным кодом.

Теперь встает вопрос - как исправить?

ADD:

SetCapsLockState, AlwaysOff
#InstallKeybdHook

Если две или одна из двух этих строк встречается во втором коде (пусть даже пустом), то первый код выдает ошибку.
* Первый код тот, что содержит WheelUp и WheelDown

ADD2:
Все равно не понимаю как решить эту проблему. Убрал все директивы, которые были во всех скриптах. Вывод аналогичный - когда скрипт с WheelUp и WheelDown запускает другие скрипты ahk, при прокрутке выскакивает ошибка

12 (изменено: Странникх, 2014-09-15 21:10:47)

Re: AHK: Проблема отправки клавиш мыши - MaxHotKeysPerInterval

Решил проблему переустановкой операционной системы.

+ открыть спойлер

Я так и знал, что она кривая! Никогда больше не буду верить людям, которые устанавливают тебе операционную систему с флешки