Что нового

Почему не всегда срабатывает нажатие кнопки мышки?

Can

Новичок
Сообщения
59
Репутация
1
Здравствуйте!
Подскажите пожалуйста, почему не всегда срабатывает нажатие левой кнопки мыши при эмуляции ?
Может в скрипте что подправить надо, а то нет четкости выполнения нажатий, 10 раз к примеру нормально выполняет, а на 11 не срабатывает, а это не допустимо для меня!

Код:
HotKeySet ( "{ESC}" ,"_Exit")

While 1 
    PixelSearch( 500, 441, 800, 463, 0xA38E00, 0, 1)
    If Not @error Then
        MouseMove(545, 740, 0)
        MouseDown("left")
        Sleep(500)
        MouseUp("left")
        Sleep(2500)
        MouseMove(545, 710, 0)
        MouseDown("left")
        Sleep(500)
        MouseUp("left")
    EndIf
WEnd

Func _Exit()
    Exit
EndFunc
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
Иногда это зависит от приложения по которому кликаешь мышкой. У меня во флеш игре после перемещения мыши приходится делать паузу перед нажатием.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Can
оформляем код внутри тэгов [autoit][/autoit] или нажимаем на кнопочку
autoit.gif
 
Автор
C

Can

Новичок
Сообщения
59
Репутация
1
Kaster сказал(а):
Can
оформляем код внутри тэгов [autoit][/autoit] или нажимаем на кнопочку
autoit.gif

Спасибо большое, хорошо бы с небольшим примерчиком, если не трудно.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Can
1.[autoit]
Тут твой код
[/autoit]
2. выделяешь кусок своего кода и нажимаешь на кнопку, которую я указал
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Can [?]
хорошо бы с небольшим примерчиком, если не трудно.
Вот попробуйте:
Код:
Run (@ScriptDir & "\count.exe")
WinWaitActive("TestForm")

While 1
	
	If WinExists("TestForm")Then
		WinActivate("TestForm")
	Else
		Exit
	EndIf
	
	PixelSearch( 192, 114, 405, 251, 0xFF00FF, 0, 1)
	If @error Then
		MsgBox(0,"Error!","Нет такого пикселя!")
		Exit
	EndIf
		
	MouseMove(294, 201, 0)
	MouseDown("left")
	Sleep(500)
	MouseUp("left")
	Sleep(2500)
	
WEnd

Файл count.au3 откомпилируйте и проверяйте свой код, который в изменённом виде, в файле MouseUpDowd.au3
 
Автор
C

Can

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

Если есть какие-нибудь идеи, то пожалуйста напишите.
 
V

VitAl2013

Гость
Относительно молниеносно работает только Assembler. Я к тому, что тоже порой нужна быстрота которой нехватает.
 
Автор
C

Can

Новичок
Сообщения
59
Репутация
1
VitAl2013 сказал(а):
Относительно молниеносно работает только Assembler. Я к тому, что тоже порой нужна быстрота которой нехватает.

Мне просто требуется, чтобы как только заданный по цвету пиксель появился на экране монитора, моментально (на сколько это возможно) отключилось активное окно,в котором он найден.

А какой минимум реагирования существует вообще?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Can [?]
Ладно, спасибо всем большое, но молниеносной реакции при изменении цвета пикселя и моментального выполнения заданного действия (клик мыши, а лучше отключения активного окна на 3 секунды) я так и не смог к сожалению добиться.
PixelSearch функция которая вам ищет совпадение с заданными условиями. Следовательно на это уходит время, и тем оно больше чем больше контролируемая область. Я полагаю если указать точные (абсолютные) координаты искомого пикселя, то скорость при которой будет выполнятся PixelSearch будет максимальной (не учитывая время выполнения всего кода)


Добавлено:
Сообщение автоматически объединено:

Вот:
Код:
WinWaitActive ("TestForm")	
PixelSearch( 293, 202, 293, 202, 0xFF00FF, 0, 1)
WinClose ("TestForm")
Exit

Запустите этот код, потом запустите скомпилированный count.au3 из приложенного мной архива. Произойдёт то что вам нужно.


Добавлено:
Сообщение автоматически объединено:

Can [?]
Мне просто требуется, чтобы как только заданный по цвету пиксель появился на экране монитора, моментально (на сколько это возможно) отключилось активное окно,в котором он найден.
Ну, вот это, должно было быть вопросом первого поста!!! :smile:
 
Верх