1

Тема: AHK: Добавить условия. Убрать баг

Есть просто скриптик на последовательное выполнение с условием. В коде так же есть несколько его аналогов начинающихся похожим образом !<цифра>::

!2::
    Send 98
    KeyWait LButton, D
    Send 0
    return

Хотелось бы чтоб ноль нажимался в том случае, даже если ЛкнМыши не нажата,  по клавиши esc или правой кнопки мыши, после чего этот скрипт всегда завершался.
Так же ужасно достал баг когда клавиатура входит в режим постоянно зажатого <alt> биндов достаточно много, и случается достаточно большое число ошибок, а следовательно и проблем с этим.

2

Re: AHK: Добавить условия. Убрать баг

Предлагаю сформулировать задачу более конкретно и оформить сообщение более грамотно.

3 (изменено: am-wrag, 2013-06-14 22:15:39)

Re: AHK: Добавить условия. Убрать баг

Весь скрипт

SetTimer, WinActive, 400
return

WinActive:
IfWinActive, 1111
    Suspend Off
else
    Suspend On
return

!0::
clipboard  = текст
Send, ^м



Capslock::Numpad4 

!3::
    Send 8
    Sleep, 200    
    Send 0
    Sleep, 200    
    Send 8
    Sleep, 200    
    Send 0        
    Sleep, 400    
    Send 9
    return
    

!2::
    Send 98
    KeyWait LButton, D
    Send 0
    return

При использовании запрограммированных здесь хоткеев иногда клавиатура начинает работать так как будто бы залипла клавиша альт(alt).

4

Re: AHK: Добавить условия. Убрать баг

В подпрограмме горячей клавиши !0 отсутствует команда возврата Return. Так и задумано?

Таймер - аналог директивы #IfWinActive?

5

Re: AHK: Добавить условия. Убрать баг

По факту таймер каждые  0,4с просто запускает процу, которая проверяет активно ли нужное окно, если нет - вырубает весь скрипт.
!0:: почти не использую, хотя return похоже там действительно пропущен.
Как правило используется только часть с !2:: и с ним же и проблема

6

Re: AHK: Добавить условия. Убрать баг

А отдельно этот скрипт работает?

!2::
    Send 98
    KeyWait LButton, D ;Ожидает нажатия левой кнопки мыши
    Send 0
    return

У меня он работает в соответствии с кодом. Насколько я понял первое сообщение, Вам требуется:

!2::
    Send 98
    KeyWait LButton, D
    Send 0
    return
Esc:: Send 0

7

Re: AHK: Добавить условия. Убрать баг

Скрипты работают. Все что есть.
Иногда , точней время от времени(всегда после использования указанного макроса) клавиатура начинает работать в режиме зажатого альт, так что любую кнопку сами того не желая вы нажимаете в комбинации с <alt>

!2::
    Send 98
    KeyWait LButton, D ;Ожидает нажатия левой кнопки мыши
    Send 0
    return

То что я хотел добавить к скрипту ни что иное как танцы с бубном для избегания указанного выше бага.
После того как вы вызываете скрипт(альт+2) совершается нажатие клавиш 9 и 8, затем в случае клика мышью жмется 0 и скрипт завершается. Хотел добавить, чтобы скрипт сворачивался не только при клике левой кнопкой мыши, а так же по правой кнопке и клавише esc.

8

Re: AHK: Добавить условия. Убрать баг

Ничего непонял из того что ещё надо. Попробуйте для начала использовать код из 3 сообщения, так:


#IfWinActive, 1111  

!0::
clipboard  = текст
Send, ^м
return


Capslock::Numpad4 

!3::
    Send 8
    Sleep, 200    
    Send 0
    Sleep, 200    
    Send 8
    Sleep, 200    
    Send 0        
    Sleep, 400    
    Send 9
    return 

!2::
    Send 98
    KeyWait LButton, D
    Send 0
    return

#IfWinActive

думаю команда Suspend может залипать альт.

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

9 (изменено: am-wrag, 2013-06-17 12:49:42)

Re: AHK: Добавить условия. Убрать баг

Всё что я хочу - чтобы не залипал Альт, всё остальное незначимо по сравнению с этим.
Сегодня вечером протестирую без Suspend. Заранее  спрошу: ведь этой процедуре есть альтернатива в данном случае?
Нужна проверка на активное окно, только нём работают все макросы...

10

Re: AHK: Добавить условия. Убрать баг

am-wrag пишет:

Нужна проверка на активное окно, только нём работают все макросы...

Если суть таймера только в этом, то не нужно изобретать велосипед, в посте #8 есть все, что нужно.
Почитай про #IfWinActive

11

Re: AHK: Добавить условия. Убрать баг

Никто ничего не изобретает, таких функций несколько просто было.

12

Re: AHK: Добавить условия. Убрать баг

Каких таких функций?

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