1

Тема: AHK: Как динамически переключать блок #IfWinActive

Есть такой фрагмент

;-----BEGIN--Для Dungeon Siege II
#IfWinActive ,Dungeon Siege II,
SetTitleMatchMode, 2

RShift::
LShift::
CapsLock::
   Send, {RButton Down}
   KeyWait, % A_ThisHotkey
   Send, {RButton Up}
Return

RCtrl::
LCtrl::
   Send, {LButton Down}
   KeyWait, % A_ThisHotkey
   Send, {LButton Up}
Return

#IfWinActive
;-----END Для Dungeon Siege II

и надо сделать что бы он перестал отрабатывать клавиши.

Я почитал, почитал и ничего не понял.
С обычными назначениями понятно, а тут не ясно как использовать Hotkey.

Написал массу вариантов и они все не работают.

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

2

Re: AHK: Как динамически переключать блок #IfWinActive

#If False && WinActive("Dungeon Siege II")

3 (изменено: Indomito, 2012-04-14 12:33:45)

Re: AHK: Как динамически переключать блок #IfWinActive

Это куда поставить? Вместо #IfWinActive ,Dungeon Siege II, ?
Просто не очень понятно на что реагирует директива #If False && WinActive("Dungeon Siege II")

Можно пример использования, по какой то клавише? Ну например Win+F8

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

4 (изменено: creature.ws, 2012-04-14 12:38:44)

Re: AHK: Как динамически переключать блок #IfWinActive

OFF: Это очередная ваша тема для «поговорить за жизнь»?

;-----BEGIN--Для Dungeon Siege II
#If var && WinActive("Dungeon Siege II")
SetTitleMatchMode, 2
 
RShift::
LShift::
CapsLock::
   Send, {RButton Down}
   KeyWait, % A_ThisHotkey
   Send, {RButton Up}
Return
 
RCtrl::
LCtrl::
   Send, {LButton Down}
   KeyWait, % A_ThisHotkey
   Send, {LButton Up}
Return
 
#IfWinActive
;-----END Для Dungeon Siege II

Xbutton2::var := !var

и надо сделать что бы он перестал отрабатывать клавиши.

— Сделано. При var = false «блок» перестаёт «обрабатываться»

5 (изменено: Indomito, 2012-04-14 21:47:08)

Re: AHK: Как динамически переключать блок #IfWinActive

Спасибо.
Задача решена.

P.S. OFF на OFF "OFF: Это очередная ваша тема для «поговорить за жизнь»?" я и правда не мог понять конструкцию, так что... это не про "жизнь".

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

6 (изменено: Indomito, 2012-04-15 15:45:55)

Re: AHK: Как динамически переключать блок #IfWinActive

creature.ws как оказалось задача решена частично.
Скажем для калькулятора всё работает OK, достаточно скажем любого сочетания от Win+F8 до ScrolLock, а эти блоки делались именно для игр, игры без защиты, т.е. не OnLine. И вот такой код не срабатывает:

GameKeyOnOff:
vGameKey := !vGameKey
if (vGameKey)
  msgbox 0,Games Key,`t -=- ON -=- `n `n Игровые клавиши АКтивированы ,3
 else
  msgbox 0,Games Key, `t  -=- OFF  -=- `n `n Игровые клавиши ДЕактивированы,3  
return

может что то можно сделать?
Например повысить приоритет для данного скрипта или что то иное?
MsgBox тут не причём - я проверял.

P.S. Я и правда не знаю как это обойти.

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

7

Re: AHK: Как динамически переключать блок #IfWinActive

И вот такой код не срабатывает

#Persistent
SetTimer GameKeyOnOff, 3500
GameKeyOnOff:
vGameKey := !vGameKey
if (vGameKey)
  msgbox 0,Games Key,`t -=- ON -=- `n `n Игровые клавиши АКтивированы ,3
 else
  msgbox 0,Games Key, `t  -=- OFF  -=- `n `n Игровые клавиши ДЕактивированы,3
return

А у меня срабатывает.

Я и правда не знаю как это обойти.

Что «это»?

8

Re: AHK: Как динамически переключать блок #IfWinActive

2 Indomito Не играю в такие игры, потому вопрос: в самой игре (не просредственно геймплэй) есть курсор? К примеру вот мой любимый CS:S, если не в меню, то в место курсора перекрестье оружия, ну в общем вопрос думаю понятен.

9 (изменено: Indomito, 2012-04-15 18:03:00)

Re: AHK: Как динамически переключать блок #IfWinActive

Grey курсор есть, я проверял на играх Mass Effect, Dragon Age и т.д.  - все работает, а вот в Dungeon Siege 2 - Broken World нет. Правда я это обхожу так:
-  сворачиваю игру (ALt-Tab);
-  нажимаю на клавиши переключения;
-  обратно разворачиваю игру (ALt-Tab).
Так всё нормально срабатывает.

creature.ws попробую по таймеру, а про "Я и правда не знаю как это обойти." я подумал может как то можно задать приоритет обработки клавиатуры для AHK.

OS Win 7 SP1 x64

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

10

Re: AHK: Как динамически переключать блок #IfWinActive

Да, ещё.
Работает Punto Switcher мной исправленный (убран/исправлен баг с девником) все игры стоят в исключениях у него.

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