1 (изменено: Елена, 2009-02-18 18:47:47)

Тема: AutoHotkey: Движение курсора до активного окна, возможно?

Хочу написать такой скрипт;
При нахождении цвета  курсор мышки перемещается в эти координаты, и начинает движение по горизонтали до активного окна и останавливается.Если не находит ,то сама указываю координаты например MouseMove, 800,400
Написала так

PixelSearch, X, Y, 300, 172, 300, 771 ,0x65С699 , Fast
         soundbeep,1000,50
        MouseMove, %X%,%Y%  ; Сдесь курсор становится в режим Выделение текста
Loop,9
{

X +=10
Y +=0
    MouseMove,  X, Y  ; Сдесь курсор становится в режим Выбор ссылки
    
}

Но естественно не правильно , сдесь мышка сама перемещается на 10 пикселей 9 раз.
А мне надо , чтобы доходила до активного элемента и остановилась.

2

Re: AutoHotkey: Движение курсора до активного окна, возможно?

Я теряюсь в вариантах, что всё-таки требуется?
1) Движение курсора до активного окна
2) Перемещение курсора в координаты пикселя с нужным цветом
3) Курсор доходит до активного элемента (тогда поясните, что такое элемент)

И ещё вопросик. Нужно просто поставить курсор на нужные координаты или переместить его туда плавно из исходной позиции?

3 (изменено: Елена, 2009-02-18 20:12:43)

Re: AutoHotkey: Движение курсора до активного окна, возможно?

И ещё вопросик. Нужно просто поставить курсор на нужные координаты или переместить его туда плавно из исходной позиции?

Курсор находит позицию сам и встаёт на неё

PixelSearch, X, Y, 300, 172, 300, 771 ,0x65С699 , Fast
         soundbeep,1000,50
        MouseMove, %X%,%Y%

А вот отсюда он должен плавно перемещаться по горизонтали вправо от этой точки , пока
не встретит активную ссылку. (посмотрела  Свойства мышь-Указатели) Курсор становиться  как (Выбор ссылки).
Может так понятнее.Извините если не так написала.

4

Re: AutoHotkey: Движение курсора до активного окна, возможно?

Надеюсь, понял верно.

width = 1280; прописываем ширину экрана
Loop
{
X=X+1
MouseMove, X, Y
IF    ; Задаём условия, при которых обнаруживается "активная ссылка"
    Msgbox, Встретилась активная ссылка
IF X>%width%
    Msgbox, Достигнут предел, "активная ссылка" не обнаружена
}

Остаётся вставить свои значения.

5 (изменено: Елена, 2009-02-18 20:56:27)

Re: AutoHotkey: Движение курсора до активного окна, возможно?

Выскакивает ошибка:

Error at Line 6
Line Text: IF
Error:""reguries at least 1 parameter.

The program will exit.

6

Re: AutoHotkey: Движение курсора до активного окна, возможно?

Правильно, это ведь только кусок кода для примера. После IF необходимо описать условия (например, цвет пикселя под курсором)

7 (изменено: Елена, 2009-02-18 22:01:42)

Re: AutoHotkey: Движение курсора до активного окна, возможно?

ypppu пишет:

Правильно, это ведь только кусок кода для примера. После IF необходимо описать условия (например, цвет пикселя под курсором)

Вот именно , что цвета могут быть любыми . Поэтому я и спрашивала, возможно ли задать такое условие ,при котором когда курсор меняется на активный - он останавливается.
попробовала для интереса задать условие по цвету , что мне и не надо , просто для проверки

F9::
PixelSearch, X, Y, 300, 172, 300, 771 ,0x78D838 , Fast
         soundbeep,1000,50
        MouseMove, %X%,%Y%
width = 1440; прописываем ширину экрана
Loop
{
X=X+1
MouseMove, X, Y
PixelGetColor, color, 305 , 770
if color= 0xC8DDEC
    Msgbox, Встретилась активная ссылка
IF X>%width%
    Msgbox, Достигнут предел, "активная ссылка" не обнаружена
}

Но после нахождения пикселя курсор перемещается к нему и резко прыгает влево к началу экрана и прописывает
Достигнут предел, "активная ссылка" не обнаружена , хотя цвет прописан правильно

8 (изменено: Елена, 2009-02-18 22:07:40)

Re: AutoHotkey: Движение курсора до активного окна, возможно?

Курсор так не двигался

X=X+1

А так пошёл

X +=1

но всё равно не остановился
Тут наверно нужно вводить переменную , которая считывает тип курсора мыши в данный
момент и ставить это в условие. Возможно???

9 (изменено: ypppu, 2009-02-18 22:37:37)

Re: AutoHotkey: Движение курсора до активного окна, возможно?

Есть такая встроенная переменная a_cursor. Чтобы получше разобраться, вот вам пример

f11::
msgbox Тип курсора в настоящий момент %a_cursor% 
return

f12:: exitapp

курсор резко прыгает влево к началу экрана

Да, для прерывания цикла неплохо бы вставить break

Возможно, это то, что нужно:

F9::
PixelSearch, X, Y, 300, 172, 300, 771 ,0x78D838 , Fast
         soundbeep,1000,50
        MouseMove, %X%,%Y%
width = 1440; прописываем ширину экрана
Loop
{
X:=X+1
MouseMove, X, Y
If A_Cursor = Unknown
    {
    Msgbox, Встретилась активная ссылка
    break
    }
IF %X%>%width%
    {
    Msgbox, Достигнут предел, "активная ссылка" не обнаружена
    break
    }
}
return

10 (изменено: Елена, 2009-02-18 22:31:20)

Re: AutoHotkey: Движение курсора до активного окна, возможно?

Всё разобралась!!!! Спасибо  огроменное yabudda !!!

11

Re: AutoHotkey: Движение курсора до активного окна, возможно?

Пробовал сделать скрипт обнаруживающий пиксель нужного цвета (по принципу данного скрипта) че то не работает) можно вообще такое сделать?

12

Re: AutoHotkey: Движение курсора до активного окна, возможно?

PixelSearch

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

13

Re: AutoHotkey: Движение курсора до активного окна, возможно?

Знаю этот пример, однако, цвет bd504f не находит никак, почему?

14 (изменено: InFlames, 2010-11-14 10:58:48)

Re: AutoHotkey: Движение курсора до активного окна, возможно?

Цвет 0хbd504f это RGB видимо. Для поиска этого цвета необходимо указать опцию RGB или поменять местами цвета (0х4f50bd)

15 (изменено: ROLF, 2010-11-14 19:07:01)

Re: AutoHotkey: Движение курсора до активного окна, возможно?

Здорово, изначально не понял смысл [Fast/RGB], Спасибо ОГРОМНОЕ!
А что значит Fast?

16

Re: AutoHotkey: Движение курсора до активного окна, возможно?

Точно не знаю, Выше есть ссылка на английский источник.

17

Re: AutoHotkey: Движение курсора до активного окна, возможно?

Fast: Uses a faster searching method that in most cases dramatically reduces the amount of CPU time used by the search. Although color depths as low as 8-bit (256-color) are supported, the fast mode performs much better in 24-bit or 32-bit color. If the screen's color depth is 16-bit or lower, the Variation parameter might behave slightly differently in fast mode than it does in slow mode. Finally, the fast mode searches the screen row by row (top down) instead of column by column. Therefore, it might find a different pixel than that of the slow mode if there is more than one matching pixel.

Fast: Используется более быстрый метод поиска, который в большинстве случаев значительно снижает количество процессорного времени, используемого на поиск. Хотя 8-битная глубина цвета поддерживается, fast-метод луше работает в 24-битном или 32-битном цвете. Если глубина цвета экрана 16 бит или менее, параметр "Variation" в fast-методе может вести себя слегка по-другому, чем в slow-методе. Кроме того, fast-метод осуществляет поиск по экрану ряд за рядом, а не колонка за колонкой. Таким образом, он может отыскать другой пиксель, чем slow-метод, если имеется более чем один пиксель, удовлетворяющий условиям.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

18

Re: AutoHotkey: Движение курсора до активного окна, возможно?

Теперь все понял, Спасибо большое: InFlames и teadrinker