Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Повтор клика
Fors1k
сообщение 19.12.2017, 17:44
Сообщение #1


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2397
Пользователь №: 18.746



Здравствуйте.
Перечитал много тем, но подходящего полностью скрипта так и не нашел.
Просьба помогите.
Необходимо выполнить следующие действия:
1. Открываю на экране одновременно 2 браузера при помощи Win + →
1. Допустим я работаю в левом браузере - ничего не происходит.
2. Но, Если я кликаю в пределах области "1" в левом браузере, то скрипт повторяет этот клик в определенной области в правом браузере. И если кликаю в области 2, то нужен тот же эффект. И так бесконечно. Возврат курсора мыши необязателен.
Если возможно этот дублирующий клик привязать конкретно к опере, и что бы он там срабатывал даже когда опера свернута, а мозилла могла бы быть постоянно на весь экран, то это будет просто замечательно.

Прикрепил скриншот для примера.Прикрепленное изображение
Условно: если я кликнул на погоду в мозилле (слева), то в опере(спарва) произойдет такой же клик, и в обоих браузерах откроется погода.


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 19.12.2017, 19:40
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26703
Пользователь №: 16.971
Возраст: 29



Цитата
Условно: если я кликнул на погоду

Не самый удачный пример, баннеры с рекламой имеют разный размер, поэтому позиция погоды может быть сдвинута.
Для работы скрипта нужен плагин: Определение статуса клавиш. Закинуть плагин к пилоту. Открыть 2 окна мозилы, развернуть на весь экран. Запустить скрипт.
Кликать можно в любом окне. При сворачивании окна не факт что будет работать.
код
Код
set %mozilla findwindow (Mozilla)   // ищем все окна мозилы
if  KB.GetKeyStateByCode(1) = 1
end_if
wait 100

while 1 = 1
    if  KB.GetKeyStateByCode(1) = 1        // если нажата левая кнопка мыши
        set #handle windowfromcursor       // получаем хендл окна под курсором
        if  %mozilla[1 1] = #handle        // если клик был в первом окне
            set workwindow %mozilla[1 1]
            wait 100
            get mouse_pos #x #y            // получаем координаты курсора
            set workwindow %mozilla[2 1]   // клик во втрое окно
            left #x #y
        end_if
        if  %mozilla[2 1] = #handle        // если клик был во втором окне
            set workwindow %mozilla[2 1]
            wait 100
            get mouse_pos #x #y
            set workwindow %mozilla[1 1]   // клик в первое
            left #x #y
        end_if
    end_if
    wait 50
end_while
end_script
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 19.12.2017, 20:18
Сообщение #3


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2397
Пользователь №: 18.746



Спасибо. Только скажите, можно ли это поправить на работу 2 разных браузера? Как на скрине. Клик в мозилле будет повторяться в оперу, а не во второе окно мозиллы? Есть необходимость в использовании двух разных браузеров.


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 19.12.2017, 20:39
Сообщение #4


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26703
Пользователь №: 16.971
Возраст: 29



Можно и для другого браузера сделать, но это сложнее.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 22.12.2017, 21:12
Сообщение #5


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2397
Пользователь №: 18.746



Скажите, а если в Ваш код добавить что-то типа этого, не выйдет?
Или как-то иначе нужно?

Цитата
set %mozilla findwindow (Mozilla) // ищем все окна мозилы
set %chrome findwindow (chrome) // ищем все окна Гугл Хрома (IMG:style_emoticons/default/excl.gif)
if KB.GetKeyStateByCode(1) = 1
end_if
wait 100

while 1 = 1
if KB.GetKeyStateByCode(1) = 1 // если нажата левая кнопка мыши
set #handle windowfromcursor // получаем хендл окна под курсором
if %mozilla[1 1] = #handle // если клик был в первом окне
set workwindow %mozilla[1 1]
wait 100
get mouse_pos #x #y // получаем координаты курсора
set workwindow %chrome // клик в хром (IMG:style_emoticons/default/excl.gif)
left #x #y
end_if
if %mozilla[2 1] = #handle // если клик был во втором окне
set workwindow %mozilla[2 1]
wait 100
get mouse_pos #x #y
set workwindow %mozilla[1 1] // клик в первое
left #x #y
end_if
end_if
wait 50
end_while
end_script


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 22.12.2017, 21:43
Сообщение #6


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26703
Пользователь №: 16.971
Возраст: 29



Цитата
что-то типа этого, не выйдет?

Нет.
1. Чтобы найти в хроме хендл окна findwindow не совсем подойдёт. Нужно найти путь к дочернему окну:Поиск_пути_к_дочернему_окну
2. Скорее всего кликать будет выше или ниже, надо будет подобрать на сколько пикселей смещение и перед кликом прибавлять или отнимать его.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 22.12.2017, 23:15
Сообщение #7


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26703
Пользователь №: 16.971
Возраст: 29



Что-то вроде этого:
код
Код
set #mozilla findwindow (Mozilla)      // поиск окна мозилы

   // этот кусок получаем с помощью скрипта: Поиск пути к дочернему окну
   // копируем из лога, вставляем сюда
set #ownerHandle findwindow ("Google Chrome")
set #tmp getwindow (#ownerHandle child)
set #childHandle getwindow (#tmp )
   ////////////////////

set #google #childHandle   // хендл окна гугл, тот что через Ctrl + A получаем

showwindow windowhandle minimize   // свернуть пилот
if  KB.GetKeyStateByCode(1) = 1
end_if
wait 100

while 1 = 1
    if  KB.GetKeyStateByCode(1) = 1        // если нажата левая кнопка мыши
        if  #mozilla = windowfromcursor    // если клик был в мозиле
            set workwindow #mozilla
            get mouse_pos #x #y            // получить координаты курсора
            set #y #y - 83                 // смещение для клика, подобрать если клик не туда
            set workwindow #google
            left #x #y                     // клик в окно гугл
        end_if
    end_if
    wait 50
end_while
end_script
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Korsar2888
сообщение 23.12.2017, 6:43
Сообщение #8


**

Neophyte
Сообщений: 33
Регистрация: 23.5.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 16.846
Возраст: 19



Цитата

set #handleWin findwindow (Lineage II)
set workwindow #handleWin

send217 4


ни в какую не работает, привязка окна идет, цвет считывает, но ни единного клика
send send217 sendex не пашет, пытался через антифрост антигейт, не работают
что еще можно попробовать?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 20.4.2024, 3:18
Designed by Nickostyle