Автор Тема: [Мышь, клавиатура] Макрос нажатия ЛКМ  (Прочитано 749 раз)

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

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн TiranCool [?]

  • Новичок
  • *
  • Сообщений: 64
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Версия AutoIt:Version 3.5.4 3.
Код: AutoIt [Выделить]
#include <Misc.au3>
Opt("MouseClickDelay")
Opt("MouseClickDownDelay")
Global $paused, $t, $hDll
OnAutoItExitRegister("OnExit")
HotKeySet("{F5}", "start")
HotKeySet("{F6}", "pause")
HotKeySet("{0}", "quit")
$aMousePos = MouseGetPos()
$iX = $aMousePos[0]
$iY = $aMousePos[1]
Func OnExit()
    ToolTip("")
    DllClose($hDll)
EndFunc   ;==>OnExit
Func start()
    ; ToolTip("")
    ToolTip("Script started... Press F6 to pause.", 1, 1)
    $paused = False
EndFunc   ;==>start
Func pause()
    $paused = True
    ; ToolTip("")
    ToolTip("Script paused... Press F5 to start.", 1, 1)
    While $paused = True
        Sleep(100)
    WEnd
    ; ToolTip("")
EndFunc   ;==>pause
Func quit()
    Exit
EndFunc   ;==>quit
Func clicks()
    If $t = True Then Return SetError(1, 0, 0)
    $t = True
   MouseClick("left", Default, $iY-10); как тут сделать, не могу понять
    $t = False
EndFunc   ;==>clicks

start()
$hDll = DllOpen("user32.dll")
While 1
    $lkmpressed = _IsPressed("01", $hDll)
    If $lkmpressed Then
        clicks()
    EndIf
WEnd
DllClose($hDlll)

 


Описание:Не могу сообразить, как при удерживающейся левой клавиши мыши, выполнять команду клик и смещение мыши вниз на столько "..." то пикселей. Помогите пожалуйста

 :stars:

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

[Мышь, клавиатура] Макрос нажатия ЛКМ
« Отправлен: Июнь 18, 2018, 19:34:26 »

Оффлайн eralex [?]

  • Новичок
  • *
  • Сообщений: 36
  • Репутация: 3
  • Пол: Мужской
    • Награды
Re: [Мышь, клавиатура] Макрос нажатия ЛКМ
« Ответ #1, Отправлен: Июнь 18, 2018, 21:06:00 »
Используй команды:

MouseDown ( "button" )
MouseMove ( x, y )
MouseUp ( "button" )

Оффлайн TiranCool [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Мышь, клавиатура] Макрос нажатия ЛКМ
« Ответ #2, Отправлен: Июнь 19, 2018, 11:41:47 »
Отчасти подходит, но есть проблема, там конкретные координаты выставляешь, а надо, чтобы в любой точке при этом можно было вести прицел влево вправо самостоятельно. В итоге многократное нажатие ЛКМ + смещение курсора вниз например на 15, но без блокировки движения самой мыши и без привязки к координатам.

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 401
  • Репутация: 92
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Мышь, клавиатура] Макрос нажатия ЛКМ
« Ответ #3, Отправлен: Июнь 19, 2018, 11:56:23 »

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

Re: [Мышь, клавиатура] Макрос нажатия ЛКМ
« Ответ #3 Отправлен: Июнь 19, 2018, 11:56:23 »

Оффлайн TiranCool [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Мышь, клавиатура] Макрос нажатия ЛКМ
« Ответ #4, Отправлен: Июнь 19, 2018, 12:08:12 »
как ей пользоваться, не разу не использовал, почитал, но не понял как.
В начале прописана эта функция, я с ней не пойму, координаты берутся непонятно.
Код: AutoIt [Выделить]
$aMousePos = MouseGetPos()
$iX = $aMousePos[0]
$iY = $aMousePos[1]


Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 401
  • Репутация: 92
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Мышь, клавиатура] Макрос нажатия ЛКМ
« Ответ #5, Отправлен: Июнь 19, 2018, 12:10:47 »
Код: AutoIt [Выделить]
#include <Misc.au3>
;Opt("MouseClickDelay")
;Opt("MouseClickDownDelay")
Global $bPaused, $hDll, $aXY
OnAutoItExitRegister("_OnExit")
HotKeySet("{F5}", "_Start")
HotKeySet("{F6}", "_Pause")
HotKeySet("{0}", "_Exit")

$hDll = DllOpen("user32.dll")
_Start()

While 1
    If _IsPressed("01", $hDll) Then
        $aXY = MouseGetPos()
        MouseMove($aXY[0], $aXY[1] - 10)
    EndIf
    Sleep(10)
WEnd

Func _Start()
    ToolTip("Script _Started... Press F6 to _Pause.", 1, 1)
    $bPaused = False
EndFunc   ;==>_Start

Func _Pause()
    $bPaused = True
    ToolTip("Script _Paused... Press F5 to _Start.", 1, 1)
    While $bPaused
        Sleep(100)
    WEnd
EndFunc   ;==>_Pause

Func _OnExit()
    DllClose($hDll)
EndFunc   ;==>_OnExit

Func _Exit()
    Exit
EndFunc   ;==>_Quit

 


Оффлайн TiranCool [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Мышь, клавиатура] Макрос нажатия ЛКМ
« Ответ #6, Отправлен: Июнь 19, 2018, 12:13:14 »
Все отлично, но влево и в право он не очень поддается, и вопрос еще как ускорить работу цикла, что бы цикл повторялся быстрее?

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 401
  • Репутация: 92
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Мышь, клавиатура] Макрос нажатия ЛКМ
« Ответ #7, Отправлен: Июнь 19, 2018, 12:19:02 »
TiranCool, 3 параметр MouseMove отвечает за скорость перемещения мыши / убрать Sleep(10) увеличит нагрузку на процессор

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

Re: [Мышь, клавиатура] Макрос нажатия ЛКМ
« Ответ #7 Отправлен: Июнь 19, 2018, 12:19:02 »

Оффлайн TiranCool [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Мышь, клавиатура] Макрос нажатия ЛКМ
« Ответ #8, Отправлен: Июнь 19, 2018, 12:33:40 »
Понял. А ускорить выполнение самого цикла, а точнее нажатия на ЛКМ и ее смещение, можно?

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 401
  • Репутация: 92
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Мышь, клавиатура] Макрос нажатия ЛКМ
« Ответ #9, Отправлен: Июнь 19, 2018, 12:36:06 »
TiranCool,
Код: AutoIt [Выделить]
;
MouseMove($aXY[0], $aXY[1] - 10) ;замените -10 на нужное расстояние смещения;
;



Добавлено: Июнь 19, 2018, 13:05:48
TiranCool  [?]
Цитировать
А ускорить выполнение самого цикла, а точнее нажатия на ЛКМ и ее смещение, можно?
Скрипт не нажимает ЛКМ он лишь смещает мышь когда вы её нажимаете
« Последнее редактирование: Июнь 19, 2018, 13:05:58 от Tempo »

Оффлайн TiranCool [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Мышь, клавиатура] Макрос нажатия ЛКМ
« Ответ #10, Отправлен: Июнь 19, 2018, 15:03:01 »
нужно добавить ?
Код: AutoIt [Выделить]
MouseClick("left")


Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 401
  • Репутация: 92
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Мышь, клавиатура] Макрос нажатия ЛКМ
« Ответ #11, Отправлен: Июнь 19, 2018, 15:12:48 »
TiranCool, если вам нужен допольнительный клик (кроме того который произойдет после того как вы отпустите ЛКМ) можете добавить

Оффлайн TiranCool [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Мышь, клавиатура] Макрос нажатия ЛКМ
« Ответ #12, Отправлен: Июнь 19, 2018, 15:17:41 »
нет, нужно во время удерживания клавиши ЛКМ дополнительные нажатия, к примеру с интервалом 50мс, либо двойные клики между циклом. Уже пробовал свой вариант, безуспешен(
Код: AutoIt [Выделить]
MouseClick("left")


Помечен как лучший ответ пользователем TiranCool Отправлен Июнь 19, 2018, 16:15:38

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 401
  • Репутация: 92
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Мышь, клавиатура] Макрос нажатия ЛКМ
« Ответ #13, Отправлен: Июнь 19, 2018, 15:46:03 »
TiranCool, функция MouseClick включает в себя события нажатия и отжатия так что после её использования _IsPressed будет возвращать False. Используйте другие клавиши для удерживания
« Последнее редактирование: Июнь 19, 2018, 16:00:38 от Tempo »

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

Re: [Мышь, клавиатура] Макрос нажатия ЛКМ
« Ответ #13 Отправлен: Июнь 19, 2018, 15:46:03 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
12 Ответов
9373 Просмотров
Последний ответ Октябрь 15, 2010, 14:31:48
от Rouch
6 Ответов
7009 Просмотров
Последний ответ Сентябрь 07, 2010, 03:10:35
от Yashied
9 Ответов
20641 Просмотров
Последний ответ Март 29, 2013, 10:01:57
от madmasles
3 Ответов
7459 Просмотров
Последний ответ Май 01, 2014, 02:11:09
от erlik
0 Ответов
2330 Просмотров
Последний ответ Июнь 08, 2014, 18:09:26
от madmasles
0 Ответов
885 Просмотров
Последний ответ Июль 31, 2014, 18:30:02
от madmasles
4 Ответов
2286 Просмотров
Последний ответ Август 03, 2014, 03:27:24
от Dima1337
1 Ответов
2327 Просмотров
Последний ответ Октябрь 11, 2014, 07:40:36
от alex33
5 Ответов
1443 Просмотров
Последний ответ Декабрь 17, 2015, 13:27:51
от Erozio
1 Ответов
326 Просмотров
Последний ответ Июнь 27, 2018, 18:38:23
от TiranCool