1 (изменено: sergeant.coolagin, 2011-10-28 21:51:16)

Тема: AHK: Активировать скрипт только когда определенное окно активно

В общем, нужно чтобы скрипт был активен только когда запущенно определенное приложение и это приложение в данный момент было активным окном.
Возьмем, к примеру, данный скрипт:

SetTimer, Au, 10

Au:
{
    GetKeyState, ShiftState, Shift
    if ShiftState = U
    {
        Send {vk51 down}
        sleep, 50
        Send {vk51 up}
        sleep, 1950
    }
}
Return


End::Pause

Вот информация про приложение, в котором должен работать данный скрипт:
http://i30.fastpic.ru/thumb/2011/1028/2c/c080be7962285a2300b8af0205bceb2c.jpeg

Мне нужно, чтобы если процесс bf3.exe не запущенн или окно Battlefield 3™ неактивно, скрипт сразу останавливался(Пауза) и только если процесс bf3.exe запущенн и окно Battlefield 3™ активно скрипт активировался(выходил из паузы) и начинал зацикливание действий, которые и есть в моем скрипте.
Ну вот как-то так.
Я пробовал сделать по простому:

#IfWinActive ,Battlefield 3™,
SetTitleMatchMode, 2

Но данный скрипт работает тупо постоянно.

А, допустим, скрипт:

#IfWinActive ,Battlefield 3™,
SetTitleMatchMode, 2
LButton::RButton

Вобще отказывается работать. Скорее всего, из-за значка ™
А вот скрипт

#IfWinActive ,Battlefield 3,
SetTitleMatchMode, 2
LButton::RButton

будет работать как в нужном мне процессе, так и в браузере(мой компьютер), где в адресной строке будет Battlefield 3.

Если делать так:

#IfWinActive ahk_class Battlefield 3™
SetTitleMatchMode, 2
LButton::RButton

и так:

#IfWinActive ahk_class Battlefield 3
SetTitleMatchMode, 2
LButton::RButton

То тоже отказывается работать. Т.к. ahk_class вроде как требует, чтобы полностью совпадал ahk_class. Но когда он совпадает(Battlefield 3™) то мне кажется, что опять же из-за значка ™ оно не хочет работать...

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

2

Re: AHK: Активировать скрипт только когда определенное окно активно

Какая версия AutoHotkey?

3 (изменено: sergeant.coolagin, 2011-10-29 00:56:08)

Re: AHK: Активировать скрипт только когда определенное окно активно

ypppu пишет:

Какая версия AutoHotkey?

Была 1.0.92.02 версия
Только что обновился до 1.1.05.01

Это могло повлиять на что-то?
Ща буду пробовать что-то делать. Но не знаю или значок ™ будет нормально определяться...

4

Re: AHK: Активировать скрипт только когда определенное окно активно

sergeant.coolagin пишет:

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

два варианта:
1) Писать скрипт в юникоде.
2) Определять окно по имени процесса

5

Re: AHK: Активировать скрипт только когда определенное окно активно

Кто- то говорил (вроде YMP), что в AHk_L можно хранить различные символы, недоступные с клавиатуры, прямо в коде скрипта.

6

Re: AHK: Активировать скрипт только когда определенное окно активно

Перевел скрипты в юникод и заработало. Спасибо.