Что нового

Анализ экрана , зажатия и отжатия клавиш

Alexankin

Новичок
Сообщения
13
Репутация
0
Версия AutoIt: v3.3.8.1

Описание:
Алгоритм действий:

1. Ждем (неопределенное количество времени)
2. Когда в определенную зону (959,435,977,486) попадает определенный цвет (255) ЗАЖИМАЕМ "G"
3. Ожидаем пока определенный цвет (4488494) попадет в определенную зону (913,717,930,732) после чего ОТПУСКАЕМ "G" и через мгновение (50мс) ЗАЖИМАЕМ "H"
4. Ожидаем пока определенный цвет (4488494) попадет в определенную зону (917,703,931,714) после чего , ОТПУСКАЕМ "H" и через мгновение (50мс) ЗАЖИМАЕМ "G"
5. Повторяем пункты 3 и 4 пока в определенной зоне (665,777,767,778) появится нужный цвет (16750899) , как нцжный цвет появился , через секунду нажать пробел и через секунду нажать "Т"
6. И опять все повторить... бесконечное количество раз.

Примечание:
Буду очень благодарен за скрипт.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
OffTopic:
Отжать тег < b > вероисповедание не позволяет? Или же важность сего сообщения зашкаливает настолько, что весь текст надо выделить жирненьким?
будь то мой раздел тема была бы уже закрыта, а автор изгнан из раздела с волчьим билетом.
 
Автор
A

Alexankin

Новичок
Сообщения
13
Репутация
0
Уважаемы Belfigor , когда я нажал - новая тема , там было:
[Тег b]Версия программы:[ Тег /b]
[Тег b]Описание:[ Тег /b]
[Тег b]Примечание:[ Тег /b]

Я тупо вписал версию в версию
Описание в описание
Примечание в примечание

Все исправил , но написал как есть... извиняйте...
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Я тут лишь изредка захожий гость и не имею толики прав. Я просто выразил своё мнение. Могу сказать что совершенно не понял поставленной задачи, из того что понял, попытался сделать это:
Код:
While 1
   $var = PixelSearch($x1, $y1, $x2, $y2, 'цвет - "коричневый"', 'шейд')
   If Not @error Then
	  Send("D {DOWN}")
	  $var = PixelSearch($x1, $y1, $x2, $y2, 'цвет - зеленый"', 'шейд')
	  If Not @error Then
		 Send("D {UP}")
		 Sleep(50)
		 Send("H {DOWN}")
	  EndIf   
WEnd

Вероятнее всего скрипт морально устарел, не программировал на AutoIt более полугода, мог ошибиться даже в оформлении.
 
Автор
A

Alexankin

Новичок
Сообщения
13
Репутация
0
вот немного сделал сам , но как заставить все это работать правильно в порядке описанного выше алгоритма ?

Код:
$var = PixelSearch(959,435,977,486,255)
   If Not @error Then
      Send("{g down}")
   $var = PixelSearch(913,717,930,732,4488494)
      If Not @error Then
	   Send("{g up}")
       Sleep(50)
	   Send("{h down}")
	$var = PixelSearch(917,703,931,714,4488494)
      If Not @error Then
         Send("{h up}")
         Sleep(50)
         Send("{g down}")
		 
		 
		  $var = PixelSearch(665,777,767,778,16750899)
            If Not @error Then
            Sleep(1000)
			Send("{SPACE}")
	        Sleep(1000)
	        Send("{t}")



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

57+ просмотров и нет решения , печально... неужели тут так все сложно для бывалых ?


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

Уже 97+ просмотров , а решения нет :(
Правда это так трудно перевести подобный алгоритм на русском языке в язык программы для бывалых ???
Вы поможете , потом я изучу готовый пример и помогу подобным мне...
 

atlake

Новичок
Сообщения
40
Репутация
0
Код:
While 1
   PixelSearch(959, 435, 977, 486, 0xFF0000)	; здесь сделаете под себя
   If Not @error Then	; если цвет найден:
	  Send("{G down}")	; удерживает клавишу "G" нажатой
   EndIf

   PixelSearch(913, 717, 930, 732, "0x" & StringMid(Hex("4488494"), 3))	; цвет RGB 0x447D2E
   If Not @error Then	; если цвет найден:
	  Send("{G up}")	;отпускает клавишу "G"
	  Sleep(50)
	  Send("{H down}")
   EndIf

   PixelSearch(917, 703, 931, 714, "0x" & StringMid(Hex("4488494"), 3))
   If Not @error Then
	  Send("{H up}")
	  Sleep(50)
	  Send("{G down}")
   EndIf

   While 1
	  PixelSearch(913, 717, 930, 732, "0x" & StringMid(Hex("4488494"), 3))	; цвет RGB 0x447D2E
	  If Not @error Then	; если цвет найден:
		 Send("{G up}")	;отпускает клавишу "G"
		 Sleep(50)
		 Send("{H down}")
	  EndIf

	  PixelSearch(917, 703, 931, 714, "0x" & StringMid(Hex("4488494"), 3))
	  If Not @error Then
		 Send("{H up}")
		 Sleep(50)
		 Send("{G down}")
          EndIf
	  #cs ========================
	  Вставите куда надо и доработаете:
	  
	  PixelSearch(665, 777, 767, 778, "0x" & StringMid(Hex("16750899"), 3))
	  
	  Sleep(1000)
	  Send("{SPACE}")
	  Sleep(1000)
	  Send("{T}")
	  
	  Время удержания клавиш (полезно в играх) Space и T можно настроить через:
	  Opt("SendKeyDownDelay", [мс])
	  по умолчанию 5 мс
	  #ce ========================
         ExitLoop
   WEnd
WEnd
;_WinAPI_GetAsyncKeyState


* Добавил ExitLoop
* Чеж я за фигню написал. EndIf нигде не поставил.. как обычно. Исправлено
 

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
Alexankin [?]
57+ просмотров и нет решения , печально... неужели тут так все сложно для бывалых ?
Бывалый не обязательно должен решать все вопросы новичков по каждому зову. А тем более когда надо думать о заработке, о делах семейных, вместо этого всё бросить и автоматизировать какую то игрушку для незнакомого человека.
 
Верх