Нажатие в конкретном окне

Помощь в написании скриптов
Birdeatsbaby
Posts: 3
Joined: 24 Sep 2023, 02:10

Нажатие в конкретном окне

24 Sep 2023, 02:16

Помогите пожалуйста, нужно чтобы две кнопки, ну к примеру W и R, нажимались с переодичностью в 20 секунд, только в определенном окне. Нажатие-то я и на мышке могу сделать, а вот чтобы только в 1 окне(
Birdeatsbaby
Posts: 3
Joined: 24 Sep 2023, 02:10

Re: Нажатие в конкретном окне

24 Sep 2023, 04:20

Code: Select all

#IfWinActive, UNDECEMBER ; 

SetTimer, PressButtons, 5000 ; 

PressButtons:
SendInput, {w}
Sleep, 100
SendInput, {q}
return
[Mod edit: [code][/code] tags added.]

не работает, вроде запускается, и сразу закрывается, не висит в трее, в чем дело?
Birdeatsbaby
Posts: 3
Joined: 24 Sep 2023, 02:10

Re: Нажатие в конкретном окне

24 Sep 2023, 04:30

Code: Select all

SetTitleMatchMode, 2 ; Установка режима сопоставления заголовков окон

; Функция для нажатия кнопок
ClickButtons()
{
    ; Проверяем, существует ли окно с указанным заголовком
    IfWinExist, UNDECEMBER
    {
        ; Активируем окно
        WinActivate, UNDECEMBER
        
        ; Ожидаем, пока окно станет активным
        WinWaitActive, UNDECEMBER
        
        ; Нажимаем кнопку "q"
        Send, q
        
        ; Ожидаем 5 секунд
        Sleep, 5000
        
        ; Нажимаем кнопку "w"
        Send, w
        
        ; Перезапускаем функцию через 10 секунд
        SetTimer, ClickButtons, 10000
    }
}

; Создаем контекстное меню для трея
Menu, Tray, Add, Выход, ExitApp

; Запускаем функцию нажатия кнопок
ClickButtons()

; Отображаем скрипт в трее
Menu, Tray, Tip, Скрипт активен
Menu, Tray, Icon, Shell32.dll, 45

; Обработчик выхода из скрипта через контекстное меню трея
ExitApp:
ExitApp
[Mod edit: + [code][/code] tags.]

запускается, висит в трее, но кнопки в игре не нажимаются( потом закрывается
mcl
Posts: 361
Joined: 04 May 2018, 16:35

Re: Нажатие в конкретном окне

25 Sep 2023, 10:40

Birdeatsbaby wrote: запускается, висит в трее, но кнопки в игре не нажимаются( потом закрывается
Дебажьте отдельные части, иначе непонятно, где именно скрипт ломается:
  • IfWinExist срабатывает? А через ahk_class / ahk_exe?
  • WinActivate срабатывает? (WinWaitActive после него необязателен, уверяет нас документация).
  • Клавиши через Send нажимаются? Одиночные нажатия могут оказаться слишком короткими и не регистрироваться. Попробуйте ещё так:

    Code: Select all

    ; 1. Долгое нажатие
    Send {q Down}
    Sleep 50
    Send {q Up}
    
    ; 2. Другой режим нажатия
    SetKeyDelay, 10, 50
    SendEvent q
    
    ; 3. Нажатия через ControlSend
    ControlSend, ahk_parent, q, A
    
  • SetTimer создаёт новый таймер. Через пять минут у вас будет 30 таймеров, и все они будут ломиться нажимать кнопки. Используйте отрицательное число, тогда таймер сработает один раз и отключится:

    Code: Select all

    SetTimer, ClickButtons, -10000

Return to “Помощь”

Who is online

Users browsing this forum: No registered users and 10 guests