1 (изменено: Странникх, 2013-10-28 19:37:56)

Тема: AHK: Проблемы с клавиатурой используя двойное нажатие и soundplay

NumPad1::
IfWinActive, Skype
 If isKeyPressed := !isKeyPressed  
 SetTimer, SendA, 100  
 Else
 {
        SetTimer, SendA, Off            
        SoundPlay E:\Scripts\1.mp3  
        Send {T Down}{Е Down}    
         SetTimer, SendB, 60000 
 }
 KeyWait NumPad1 
 return

SendA:
SetTimer, SendB, Off 
SoundPlay E:\Scripts\2.mp3   
Send {T Up}{Е Up}
return

SendB:
Send {T UP}{Е Up}   
SetTimer, SendB, Off 
return

Скрипт работает прекрасно, но когда нужно альтабнуться, то порой ничего не происходит, также наблюдаю проблемы с зажатым шифтом после альтаба. Написал в начало кода:

IfWinNotActive, Skype
Send {Shift Up}

С шифтом проблем вроде не наблюдаю, но я не могу нормально альтабнуть периодически. Как будто при нажатии Alt+Tab зажимается что-то еще лишнее.
upd: Добавил параметр

#InstallKeybdHook

вкладка меняется на предыдущую при использовании Alt+Tab, но все равно почему-то зажимается то ли Shift, то ли еще что-то лишнее и не дает листать вкладки Tab'ом зажимая Alt

2

Re: AHK: Проблемы с клавиатурой используя двойное нажатие и soundplay

А что должно происходить по нажатию Alt+Tab+T+E?

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

3

Re: AHK: Проблемы с клавиатурой используя двойное нажатие и soundplay

При нажатии Alt+Tab должно позволять листать вкладки без нажатия лишних Shift и др. лишних клавиш. T(Е русская) всего лишь кнопка для спама в чат. Может возможно сделать что-то вроде break или pause при альтабе, так как возможно таймеры в скрипте не останавливаются даже тогда когда Skype окно не активно.

4

Re: AHK: Проблемы с клавиатурой используя двойное нажатие и soundplay

Попробуй в свой скрипт добавить:

*!Tab:: AltTabAndMenu

Может и поможет.

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

5

Re: AHK: Проблемы с клавиатурой используя двойное нажатие и soundplay

*!Tab:: AltTabAndMenu

Тоже самое что и

#InstallKeybdHook

, дальше предыдущей вкладки пролистнуть не дает. Вот странно, стоит параметр

IfWinActive, Skype

, значит скрипт совершает что-то вроде reload , когда происходит альтаб, но во время нажатия Alt+Tab такое чувство , что нажимается еще и T(Е), и Shift. Возможно решение кроется в примерно этом:

IfWinNotActive, Skype
SetTimer, SendB, Off 
SetTimer, SendA, Off 
Send {T Up}{Е Up}{Shift UP}

Но дело в том, что эта строчка не помогает.

6

Re: AHK: Проблемы с клавиатурой используя двойное нажатие и soundplay

Как оказалось эта строчка еще как помогает. Вот решение:

*!Tab:: AltTabAndMenu

vk61::
IfWinNotActive, Skype
SetTimer, SendB, Off 
SetTimer, SendA, Off 
Send {T Up}{Е Up}{Shift UP}

IfWinActive, Skype
 If isKeyPressed := !isKeyPressed  
 SetTimer, SendA, 40  
 Else
 {
IfWinNotActive, Skype
{
SetTimer, SendB, Off 
SetTimer, SendA, Off 
Send {T Up}{Е Up}{Shift UP}
}

        SetTimer, SendA, Off            
        SoundPlay E:\Scripts\1.mp3   
        Send {T Down}{Е Down}    
         SetTimer, SendB, 60000 
 }
 KeyWait, vk61 
 return

SendA:
IfWinNotActive, Skype
{
SetTimer, SendB, Off 
SetTimer, SendA, Off 
Send {T Up}{Е Up}{Shift UP}
}

SetTimer, SendB, Off 
SoundPlay E:\Scripts\2.mp3   
Send {T Up}{Е Up}
return

SendB:
IfWinNotActive, Skype
{
SetTimer, SendB, Off 
SetTimer, SendA, Off 
Send {T Up}{Е Up}{Shift UP}
}
Send {T UP}{Е Up}   
SetTimer, SendB, Off 
return

И даже не вызывает конфликтов во время зажатия T(Е), которое не позволяло листать вкладки.

7

Re: AHK: Проблемы с клавиатурой используя двойное нажатие и soundplay

Если ещё осталась проблема то она из за таймера - он не отключается, у меня было нечто подбное в скрипте который обрабатывает всё, от окон, до игр - пришлось написать внутренний диспечер, который всё отлавливает и отключает то что уже не нужно, могу дать его фрагмент, правда он навороченный и работает по маскам, т.е. Состояние Задачи = Задача & Маска стастуса

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

8

Re: AHK: Проблемы с клавиатурой используя двойное нажатие и soundplay

Проблема решена. Насчет фрагмента диспетчера не откажусь посмотреть, возможно ваш вариант будет более удобен мне или во всяком случае будет удобен для людей со схожей проблемой.

9 (изменено: Indomito, 2013-10-29 16:22:00)

Re: AHK: Проблемы с клавиатурой используя двойное нажатие и soundplay

Вот только его окончательно доделаю, там флаги по маскам (2 4 8 16 32 64) т.е. каждое открытое окно имеет от 0 до 5 состояний, которые отслеживаются по одному постоянно работающему таймеру - пока есть ещё ошибки и недочёты.
По сути это реализация многопоточности в одном потоке (квантование процессов), а флаг это семафор (достаточно сложный).
Я просто вспомнил, чему учили в институте (да ели вспомнил, столько лет прошло), и решил попробовать реализовать на практике.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro