Что нового

[Мышь, клавиатура] Рандомные клики

clown

Новичок
Сообщения
28
Репутация
3
есть 3 действия в combo. выбираем одно, жмем button. начинает выполняться действие с условием. в действии указан квадрат на рабочем поле(20х20 пикс.) и производятся клики в этом квадрате по всем пикселам в рандомном порядке(без проверки цвета пиксела).
помогите описать, пожалуйста
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Нужно обязательно накликать все 400 кликов в квадрате 20*20?
 

Kalisnik

Эволюция
Сообщения
295
Репутация
63
Это рандомные клики с повторениями пикселов. Для рандомных кликов по пикселам без повторений, код будет немного другим.
Прерывание этого кода осуществляется нажатием Alt + ё.

Код:
Dim $X[20], $Y[20]

;Выход через комбинацию клавишь ALT + Ё
HotKeySet("!ё", "_Exit")
HotKeySet("!`", "_Exit")

For $i = 0 To 19 ; Заполнение массивов.
	$X[$i] = $i + 200 ;Начальная координата Х.
	$Y[$i] = $i + 200 ;Начальная координата Y.
Next

While 1 ;Одноразовое нажатие левой кнопки мышки в цикле с рандомными координатами.
	MouseClick("left", $X[Random(0, 19, 1)], $Y[Random(0, 19, 1)])
	Sleep(500)
WEnd

;Выполнение выхода через комбинацию клавишь ALT + Ё
Func _Exit()
    Exit
EndFunc
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Код:
#include <array.au3>

Dim $aArray[400]
For $i = 0 To 399
	$aArray[$i] = $i
Next

$x0 = 0 ; Координата левого верхнего угла площади
$y0 = 0 ; Координата левого верхнего угла площади

While UBound ($aArray) > 0
	$i = Random (0, UBound ($aArray) - 1, 1)
	$x = $x0 + Floor (Mod ($i, 20))
	$y = $y0 + Floor ($i/20)
	MouseClick ("left", $x, $y, 1, 3)
	_ArrayDelete($aArray, $i)
WEnd
 
Автор
C

clown

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

dwerf

Использует ArchLinux
Сообщения
478
Репутация
219
Код:
#include <GuiConstantsEx.au3>

GUICreate('test')
$iCombo = GUICtrlCreateCombo('', 10, 10)
GUICtrlSetData($iCombo, 'test a|test b')
$iButton = GUICtrlCreateButton('Start', 10, 50)

GUISetState()

While 1
	Switch GUIGetMsg()

		Case $GUI_EVENT_CLOSE
			Exit

		Case $iButton
			Switch GUICtrlRead($iCombo)

				Case 'test a'
					MsgBox(0, 'test', '"test a" selected' & @CRLF & '"test b" not selected')

				Case 'test b'
					MsgBox(0, 'test', '"test a" not selected' & @CRLF & '"test b" selected')

				Case Else
					MsgBox(0, 'test', '"test a" not selected' & @CRLF & '"test b" not selected')

			EndSwitch

	EndSwitch
WEnd
 
Верх