Не пойму,почему скрипт на работает в свернутом окне

Помощь в написании скриптов
gloomyr666
Posts: 2
Joined: 26 May 2018, 06:04

Не пойму,почему скрипт на работает в свернутом окне

Post by gloomyr666 » 26 May 2018, 06:10

Есть код скрипта, от которого жду нажатие пробела в свернутом (ну или хотя бы неактивном окне) игры (Овервотч).
НО работает скрипт только в активном окне. Как это исправить,товарищи?=/

Code: Select all

SetTitleMatchMode, 1            ; мы будем искать окно, название которого начинается с заданной строки
WinGet, overwatch_id, pid, Overwatch  ; ищем окно овера, сохраняем идентификатор ее процесса в overwatch_id
SetKeyDelay, 20, 1200           ; 

loop                            ; бесконечный цикл
  {
  SendMessage, 6, 1, -1,, ahk_pid %overwatch_id%
                                ; рфка не обрабатывает сообщения, если окно ввода неактивно
                                ; мы "обманем" её, послав сообщение об активации окна
  loop, 40                      ; "обманывать" будем 1 раз на каждые 40 действий, чтоб она не устала :)
    {
    ControlSend,, {SPACE}, ahk_pid %overwatch_id%
                                ; жмем пробел и собираем лут
    }
  }
В коде как видите есть обманка, была сделана каким-то юзером для игры РФ онлайн, там тоже самое было, вот он и придумал такую обманку. Но в РФке она работала - а тут ноль толку,хз.
Нет ни у кого идей случаем?=(
gloomyr666
Posts: 2
Joined: 26 May 2018, 06:04

Re: Не пойму,почему скрипт на работает в свернутом окне

Post by gloomyr666 » 26 May 2018, 08:05

Был еще такой вариант, я не проверял честно говоря первый (в посте), но думаю он так же работает -

Code: Select all

; стартуем прогу
Program = "F:\games\Overwatch\Overwatch.exe" ; полный путь к программе
ProgTitle = Overwatch ; заголовок программы

; запускаем программу
; Run %Program%

; ждем программу 5 секунд, если не запустится или не найдется - выходим
WinWait, %ProgTitle%, , 5
if ErrorLevel
{
MsgBox Программа не обнаружена. Выход.
ExitApp
}

; некоторые служебные параметры
#SingleInstance, Force
SetTitleMatchMode, 2
Coordmode, Mouse, Screen
CoordMode, Pixel, Screen
SetKeyDelay 30,50

; получаем список программ с указанным заголовком
WinGet, WinList, List, %ProgTitle%

; проверяем список указателей на программы, если 0 - выходим
if (%WinList1% = 0)
{
MsgBox Программа не обнаружена. Выход.
ExitApp
}

x = 0 ; просто переменная для счетчика

winId1 = ahk_id %WinList1%

; количество повторов 99999 (просто Loop если бесконечно)
loop
{
SendMessage, 6, 1, -1,, ahk_pid %winId1%
loop, 40
}

ControlSend, ,{Up}, %winId1%
Sleep, 2000 ; ждем 2 секунды
}
}
суть в том,что игра - Overwatch - шутерок такой стандартный,есть чат команды и все такое. Так вот - если открыть чат и назначить кнопку в коде например "1" - то даже СВЕРНУТОЕ окно будет печатать в чат строке игры эту цифру. Однако, если закрыть чат строку - игра будто не видит свернутой все эти посылы нажатий клавиш. Хз почему такая разница и как ее пофиксить =(
Post Reply

Return to “Помощь”