Что нового

[Мышь, клавиатура] После запуска скрипта мышка стоит на месте

deffol

Новичок
Сообщения
22
Репутация
0
Скрипт должен нажимать рандомно на определенные пикселы в заданном пространстве.
Когда запускаю его, нажатий не происходит, и, курсор стоит на месте.

Код:
#include <Array.au3>

HotKeySet("{ESC}","ExitApp")
Func ExitApp()
   Exit
EndFunc

Dim $aResult[1001][2] = [[1000]]
$iCount = 0

WinActivate("[TITLE:blabla]")
While WinActive("[TITLE:blabla]")
WEnd

While 1
   PixelClick(148, 700, 245, 1310, 0x000000, 100)
WEnd

Func PixelClick($X, $Y, $Right, $Bottom, $Color, $Dip_Col)
   Local $Left = Random($X, $Bottom)
   Local $Top = Random($Y, $Right)
   $Pos = PixelSearch($Left, $Top, $Right, $Bottom, $Color, $Dip_Col)
   If IsArray($Pos) Then
      If ($Pos[0] > $X) And ($Pos[1] > $Y) And ($Pos[0] < $Right) And ($Pos[1] < $Bottom) Then
         MouseClick("left", $Pos[0], $Pos[1], 2, 1)
      EndIf
   EndIf
EndFunc


Подскажите, что не так, буду признателен.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Код:
WinActivate("[TITLE:blabla]")
While WinActive("[TITLE:blabla]")
WEnd


Ты никогда не выходишь из этого цикла и скрипт дальше у тебя не идёт.
 
Автор
D

deffol

Новичок
Сообщения
22
Репутация
0
изменил на

Код:
$sTitle = 'blabla' ; заголовок
$hWin = WinWait($sTitle, '', 3)

If not WinActive($hWin) Then
   WinActivate($hWin)
   WinActive($hWin)
EndIf


тоже самое...или я не решил проблему таким образом?
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
А вот так?
Код:
Local $Left = Random($X, $Bottom,1)
   Local $Top = Random($Y, $Right,1)
 
Автор
D

deffol

Новичок
Сообщения
22
Репутация
0
нет, к сожалению не помогает :( хотя раньше работал на ура и без изменений этих
 

rusreg79

Продвинутый
Сообщения
159
Репутация
57
deffol [?]
изменил на


Код:
$sTitle = 'blabla' ; заголовок
$hWin = WinWait($sTitle, '', 3)

If not WinActive($hWin) Then
   WinActivate($hWin)
   WinActive($hWin)
EndIf


тоже самое...или я не решил проблему таким образом?
Я бы сделал так. хотя это не важно:
Код:
$hWin = WinGetHandle("blabla") ; заголовок
WinActivate($hWin)
WinWaitActive($hWin,'',3)
If Not WinActive($hWin) Then
	MsgBox (0,'','Окно небыло найдено!')
	Exit
EndIf

Скрипт надо тебе трассировать, находит ли он окно, нужный пиксель, может в игре защиту поставили и мышь блокируется попросту.
 
Автор
D

deffol

Новичок
Сообщения
22
Репутация
0
та проверку окна убрал пока, есть такое. на счет защиты...дык ведь и в Paint не хочет ничего делать.

Уже мысли идут, что это из за винды или бука... На компе все работало не так давно.
 

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Проверь на защиту игры:
Код:
HotKeySet('{F1}','_Test')
While 1
Sleep(100)
Wend

Func _Test()
MouseClick('left')
EndFunc
 
Автор
D

deffol

Новичок
Сообщения
22
Репутация
0
та дело в том, что я не в игре проверяю, а в Paint'е, там ноль реакции...
Даже когда убираю из сорца проверку окна - должен ведь нажимать в любом окне, тоже нет реакции... Это может быть из за винды? Ведь скрипт рабочий должен быть, я не могу найти ошибок :(
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
deffol
Код:
#include <Array.au3>

Opt('MouseCoordMode', 2)
Opt('PixelCoordMode', 2)

HotKeySet("{ESC}","ExitApp")

Run('mspaint.exe')
While Not WinActive('[CLASS:MSPaintApp]')
	Sleep(250)
WEnd

ConsoleWrite('Ok!' & @CR)

While 1
	If PixelClick(58, 0, 100, 100, 0xffffff ) Then 
	   ConsoleWrite('PixelClick!' & @CR)
	Else
	   ConsoleWrite('Not PixelClick!' & @CR)
	EndIf
   
   Sleep(250)
WEnd

Func PixelClick($X, $Y, $Right, $Bottom, $Color)
   Local $Left = Random($X, $Bottom)
   Local $Top = Random($Y, $Right)
   $Pos = PixelSearch($Left, $Top, $Right, $Bottom, $Color)
   If IsArray($Pos) Then
      If ($Pos[0] > $X) And ($Pos[1] > $Y) And ($Pos[0] < $Right) And ($Pos[1] < $Bottom) Then
         MouseClick("left", $Pos[0], $Pos[1], 2, 1)
		 Return 1
      EndIf
	EndIf
	Return 0
EndFunc

Func ExitApp()
   Exit
EndFunc
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
deffol
Какие-то ошибки в коде.
Если закомментировать, строки, - мышь оживет
Код:
#include <Array.au3>

HotKeySet("{ESC}","ExitApp")
Func ExitApp()
   Exit
EndFunc

Dim $aResult[1001][2] = [[1000]]
$iCount = 0

While 1
   PixelClick(148, 700, 245, 1310, 0x000000, 100)
   Sleep(100)
WEnd

Func PixelClick($X, $Y, $Right, $Bottom, $Color, $Dip_Col)
   Local $Left = Random($X, $Bottom)
   Local $Top = Random($Y, $Right)
   $Pos = PixelSearch($Left, $Top, $Right, $Bottom, $Color, $Dip_Col)
   If IsArray($Pos) Then
      ; If ($Pos[0] > $X) And ($Pos[1] > $Y) And ($Pos[0] < $Right) And ($Pos[1] < $Bottom) Then
          ;MouseClick("right", $Pos[0], $Pos[1], 2, 1)
		  MouseMove($Pos[0], $Pos[1]);поменял, MouseClick так же будет работать
      ;EndIf
   EndIf
EndFunc
 
Верх