Автор Тема: Зажатие ПКМ  (Прочитано 1584 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Resolute [?]

  • Новичок
  • *
  • Сообщений: 3
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Зажатие ПКМ
« Создано: Январь 02, 2017, 22:05:36 »
Добрый вечер! Перешел на AutoIt после AHK, и сейчас пока ничего непонятно, непривычно. Напишите, пожалуйста, скрипт, чтобы при нажатии на ПКМ, эта кнопка зажималась, а при повторном нажатии - отжималась. Спасибо!

Русское сообщество AutoIt

Зажатие ПКМ
« Отправлен: Январь 02, 2017, 22:05:36 »

Оффлайн mr.Gbabak [?]

  • Новичок
  • *
  • Сообщений: 202
  • Репутация: 18
  • Пол: Мужской
    • Награды
Re: Зажатие ПКМ
« Ответ #1, Отправлен: Январь 03, 2017, 08:19:23 »
тебе нужен срипт, чтоб при нажатии на ПКМ нажималась ПКМ?

Оффлайн Resolute [?]

  • Новичок
  • *
  • Сообщений: 3

  • Автор темы
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Зажатие ПКМ
« Ответ #2, Отправлен: Январь 03, 2017, 10:55:47 »
тебе нужен срипт, чтоб при нажатии на ПКМ нажималась ПКМ?
Так точно. В ahk это выглядит самым примитивным образом:
Rbutton::send, ''скрипт''

Но ahk не работает в нужной мне программе - пробую autoit. Мне надо, чтобы при нажатии на ПКМ эта кнопка зажималась, при следующем нажатии - отжималась

Оффлайн mr.Gbabak [?]

  • Новичок
  • *
  • Сообщений: 202
  • Репутация: 18
  • Пол: Мужской
    • Награды
Re: Зажатие ПКМ
« Ответ #3, Отправлен: Январь 03, 2017, 12:10:23 »
Код: AutoIt [Выделить]
#include <Misc.au3>
Global $pkm
Local $hDLL = DllOpen("user32.dll")

While 1
    If _IsPressed("02", $hDLL) Then _mouse()
    Sleep(100)
WEnd

DllClose($hDLL)

Func _mouse()

    If $pkm = 1 Then
        MouseUp('right')
        $pkm = 0
        ConsoleWrite("_IsPressed - Отжата клавиша ПКМ." & @CRLF)
    Else
        $pkm = MouseDown('right')
        ConsoleWrite("_IsPressed - Нажата клавиша ПКМ" & @CRLF)
    EndIf

EndFunc   ;==>_mouse
 


Русское сообщество AutoIt

Re: Зажатие ПКМ
« Ответ #3 Отправлен: Январь 03, 2017, 12:10:23 »

Оффлайн Resolute [?]

  • Новичок
  • *
  • Сообщений: 3

  • Автор темы
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Зажатие ПКМ
« Ответ #4, Отправлен: Январь 04, 2017, 16:08:47 »
к сожалению у меня этот скрипт просто нажимает на ПКМ, не зажимая ее

Оффлайн key_on [?]

  • Новичок
  • *
  • Сообщений: 1
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Зажатие ПКМ
« Ответ #5, Отправлен: Июнь 25, 2018, 23:55:00 »
Если еще актуально.

Скрипт зажимает клавишу "n" при клике по ПКМ и отжимает при следующем клике по ПКМ.

Код: AutoIt [Выделить]
#include <Misc.au3>

$status = 0
Local $hDLL = DllOpen("user32.dll")

Func status ()                                                                                          ;Функция счетчика нажатий на правую кнопку мыши
    if _IsPressed("02",$hDLL) = true then                                                               ;Если правая кнопка нажата
        $status = $status-1                                                                             ;Присваиваем значение статусу (-1)
        do                                                                                              ;Цыкл ожидания отжатия правой кнопки мыши - определяет завершение клика
            _IsPressed("02",$hDLL)
        until _IsPressed("02",$hDLL) = false
        $status = $status+2                                                                             ;Присваиваем значение переменной статуса (Результат будет менятся от кликак к клику в диапазоне от 1 до 2)
        If $status = 3 Then                                                                             ;Возвращаем к исходному значениею чтобы счетчик не выходил за пределы двух значений
        $status = 1
        EndIf
        EndIf
        EndFunc


while 1
    status ()
if $status = 1 Then
    ;ConsoleWrite("_IsPressed - Click_1." & @CRLF) ;Для отладки
    Send("{n down}")
    Do                                                                                                  ;Ждем пока произойдет следущее нажатие правой кнопки мыши в пределах одного цикла.
        status ()
        until $status = 2
ElseIf $status = 2 Then
    ;ConsoleWrite("_IsPressed - Click_2." & @CRLF) ;Для отладки
    Send("{n up}")
    Do                                                                                                  ;Ждем пока произойдет следущее нажатие правой кнопки мыши в пределах одного цикла.
        status ()
        until $status = 1
EndIf

sleep(30)
WEnd
DllClose($hDLL)


Русское сообщество AutoIt

Re: Зажатие ПКМ
« Ответ #5 Отправлен: Июнь 25, 2018, 23:55:00 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
8 Ответов
9946 Просмотров
Последний ответ Ноябрь 22, 2009, 00:17:35
от killbond
9 Ответов
11441 Просмотров
Последний ответ Сентябрь 26, 2015, 20:48:06
от alex33
3 Ответов
3535 Просмотров
Последний ответ Сентябрь 17, 2010, 08:08:19
от Guezt Gutsy
4 Ответов
6731 Просмотров
Последний ответ Февраль 25, 2011, 20:07:10
от VladUs
3 Ответов
3510 Просмотров
Последний ответ Август 24, 2012, 06:07:32
от CreatoR
1 Ответов
2879 Просмотров
Последний ответ Март 16, 2013, 09:21:56
от madmasles
7 Ответов
2569 Просмотров
Последний ответ Декабрь 11, 2013, 19:30:50
от Ksaan
1 Ответов
860 Просмотров
Последний ответ Март 27, 2015, 13:04:41
от alex33
3 Ответов
1238 Просмотров
Последний ответ Октябрь 20, 2015, 11:23:31
от NuclearBeer
9 Ответов
1882 Просмотров
Последний ответ Апрель 09, 2016, 17:47:03
от ZeVSalt