Что нового

работа скрипта в неактивном окне

sanerrr

Новичок
Сообщения
10
Репутация
0
Здравствуйте, помогите прикрепить скрипт к определенному окну (онлайн игра), чтобы он работал в фоновом режиме

Код:
$atack = False
Global $coord
HotKeySet("4", "dps")

While 1 
    If $atack = True Then
        MouseClick("LEFT", $coord[0], $coord[1], 1, 0.01)
    EndIf
    Sleep(5000)
WEnd

Func dps()
    $atack = Not($atack)
    $coord = MouseGetPos()
EndFunc


скрипт не мой
 
Автор
S

sanerrr

Новичок
Сообщения
10
Репутация
0
ребята, помогите, пожалуйста, не могу сам справиться
добрый человек, написавший скрипт сверху, советовал заменить
Mouseclick()
;на
Controlclick()
но не помогло((
 

eralex

Знающий
Сообщения
63
Репутация
5
Так можно кликать в неактивное (перекрытое, задвинутое за пределы рабочего стола), но не свёрнутое окно.

Код:
Func _MClickPlus($Window, $Button = "left", $X = "", $Y = "", $Clicks = 1)
    Local $MK_LBUTTON      =  0x0001
    Local $WM_LBUTTONDOWN   =  0x0201
    Local $WM_LBUTTONUP  =  0x0202

    Local $MK_RBUTTON      =  0x0002
    Local $WM_RBUTTONDOWN   =  0x0204
    Local $WM_RBUTTONUP  =  0x0205

    Local $WM_MOUSEMOVE  =  0x0200

    Local $i                = 0

    Select
    Case $Button = "left"
       $Button   =  $MK_LBUTTON
       $ButtonDown =  $WM_LBUTTONDOWN
       $ButtonUp   =  $WM_LBUTTONUP
    Case $Button = "right"
       $Button   =  $MK_RBUTTON
       $ButtonDown =  $WM_RBUTTONDOWN
       $ButtonUp   =  $WM_RBUTTONUP
    EndSelect

    If $X = "" OR $Y = "" Then
       $MouseCoord = MouseGetPos()
       $X = $MouseCoord[0]
       $Y = $MouseCoord[1]
    EndIf

    For $i = 1 to $Clicks
       DllCall("user32.dll", "int", "SendMessage", _
          "hwnd",  WinGetHandle( $Window ), _
          "int",   $WM_MOUSEMOVE, _
          "int",   0, _
          "long",  _WinAPI_MakeLong($X, $Y))

       DllCall("user32.dll", "int", "SendMessage", _
          "hwnd",  WinGetHandle( $Window ), _
          "int",   $ButtonDown, _
          "int",   $Button, _
          "long",  _WinAPI_MakeLong($X, $Y))


       DllCall("user32.dll", "int", "SendMessage", _
          "hwnd",  WinGetHandle( $Window ), _
          "int",   $ButtonUp, _
          "int",   $Button, _
          "long",  _WinAPI_MakeLong($X, $Y))

    Next
EndFunc
 
Автор
S

sanerrr

Новичок
Сообщения
10
Репутация
0
а можно в ваш скрипт добавить этот? чтобы определял координаты по нажатию кнопки 4, и как привязать к конкретному окну?
извините, для меня написание скриптов темный лес :(
Код:
$atack = False
Global $coord
HotKeySet("4", "dps")

While 1 
    If $atack = True Then
        MouseClick("LEFT", $coord[0], $coord[1], 1, 0.01)
    EndIf
    Sleep(5000)
WEnd

Func dps()
    $atack = Not($atack)
    $coord = MouseGetPos()
EndFunc
 

eralex

Знающий
Сообщения
63
Репутация
5
Код:
$atack = False
Global $coord
Global $GameTitle = "Заголовок игры"
HotKeySet("4", "dps")

While 1
    If $atack = True Then
        _MClickPlus($GameTitle , "left",  $coord[0], $coord[1], 1)
    EndIf
    Sleep(5000)
WEnd

Func dps()
    $atack = Not($atack)
    $coord = MouseGetPos()
EndFunc
 
Автор
S

sanerrr

Новичок
Сообщения
10
Репутация
0
извините, но не работает, выбивает скрипт с ошибкой :(
 

eralex

Знающий
Сообщения
63
Репутация
5
Вы функцию _MClickPlus в состав скрипта включили? Которая была в моём первом посте.
 

OlegDenisov

Новичок
Сообщения
8
Репутация
0
не хватает в начале
#include <WinAPI.au3>
вот и не работает.

Функция шикарная.
Сообщение автоматически объединено:

Кто-нибудь в курсе как быть с Title из контролсенд или контролклик если окон с одинаковым этим самым Title-ом несколько?
В какое из окон будет отправляться команда?
 
Последнее редактирование:

OlegDenisov

Новичок
Сообщения
8
Репутация
0
есть ли возможность по очереди во все отправлять?
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Конечно можно. Поиск по форуму работает.
 

OlegDenisov

Новичок
Сообщения
8
Репутация
0
раздел называется “Сделайте всё за меня” , а не пошли меня на х*й в поиск. Я попросил помощи именно потому, что не смог найти решения в поиске, просто показать кусок кода, но я не просил звездить.


Стол заказов

Форум для заказов готовых скриптов/программ -> a.k.a “Сделайте всё за меня”.

...и знаете заметил такую особенность, чем больше постов, читай ума, у гуру AutoIT тем чаще его просят не писать в той или иной теме форума.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
@OlegDenisov

Во-первых, вы ничего не просили сделать. На ваши вопросы я ответил в соответствие с их формулировкой: есть ли возможность? да, есть.
Во-вторых, это не ваша тема. Создавшему тему сделали то, что он просил уже три года назад. И то, что вы сюда сунулись с "умным" предложением добавить include, то это ваши проблемы.

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