1

Тема: AHK: Условие, блокировка ЛКМ

Приветствую. Написал небольшой скрипт

F8::
SetTimer, ImageCheck, 20
return


ImageCheck:
ImageSearch, ImageX, ImageY, *, *, *, *, *0 A1.bmp
    if ( ErrorLevel > 0 )
        {
goto, ImageCheck
        return
        }
        Click
return
F9::ExitApp

1. Как весь основной скрипт поставить под условие зажатой ПКМ (+ соответственно бесконечный цикл проверки этого условия).
2. Как блокировать и разблокировать ЛКМ, чтобы данный скрипт имел вид

if ( ErrorLevel > 0 )
        {
//ЛКМ заблокирован
goto, ImageCheck
        return
        }
//ЛКМ разблокирован

Подскажите пожалуйста. Что я только не пробовал, но скрипт либо не работает полностью, либо работает крайне криво.

2 (изменено: Foma, 2022-01-25 23:13:09)

Re: AHK: Условие, блокировка ЛКМ

Смотрите

#If [Expression]

3

Re: AHK: Условие, блокировка ЛКМ

Для включения / выключения перехвата клавиш есть команда 'Hotkey'.

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

4

Re: AHK: Условие, блокировка ЛКМ

__Михаил__ пишет:

Для включения / выключения перехвата клавиш есть команда 'Hotkey'.

Видел данную команду, но как её реализовать в данном скрипте?
Соответственно чтобы скрипт не прерывался по нажатию на ПКМ.

5 (изменено: __Михаил__, 2022-01-26 01:07:58)

Re: AHK: Условие, блокировка ЛКМ

baraban
Из шапки не понятно что вы хотите получить и как оно должно работать. Распишите подробно: нажал клавишу X - произошло то-то и т.д.

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

6

Re: AHK: Условие, блокировка ЛКМ

__Михаил__ пишет:

baraban
Из шапки не понятно что вы хотите получить и как оно должно работать. Распишите подробно: нажал клавишу X - произошло то-то и т.д.

Зажимаю ПКМ > Начинает работать основной скрипт > В случае обнаружения картинки разблокируется ЛКМ > В случае не обнаружения картинки ЛКМ блокируется > При отпускании ПКМ ЛКМ разблокируется

7

Re: AHK: Условие, блокировка ЛКМ

Вот пример, дальше думаю разберётесь сами:

HotKey, vk2, KK, On
Return

KK:
ToolTip, vk2,0,0
HotKey, vk1, KK0, On
KeyWait, %A_ThisHotkey%, U
HotKey, vk1, KK0, Off
ToolTip
Return

KK0:
ToolTip, vk1,30,0,2
KeyWait, %A_ThisHotkey%, U
ToolTip,,,,2
Return
Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

8

Re: AHK: Условие, блокировка ЛКМ

baraban, попробуйте так:


RButton::
    While GetKeyState("RButton", "P") {
        ImageSearch, varX, varY, x1, y1, x2, y2, %A_ScriptDir%\Image.bmp
    }
Return

#If ErrorLevel != 0
LButton::Return
#If

9

Re: AHK: Условие, блокировка ЛКМ

Taveron, в таком варианте полностью блокируется ПКМ.

10

Re: AHK: Условие, блокировка ЛКМ

~RButton::

11

Re: AHK: Условие, блокировка ЛКМ

Taveron, в таком варианте работает, но как сделать чтобы это ещё и работало в активном окне?

12

Re: AHK: Условие, блокировка ЛКМ


#IfWinActive КритерийОкна
~RButton::