Что нового

Как задать относительные координаты активному окну

mini

нинзя-черепангел
Сообщения
44
Репутация
1
Код:
Opt("CaretCoordMode", 0) 

WinWaitActive("Adobe Flash Player 9")

MouseClick("left", 661, 408, 1)

sleep(500)

Всё работает почти нормально: Когда окно плеера активно, то мышка делает клик, но не по относительным координатам, а по абсолютным...
Цифры после кареткоордмод ни на что не повлияли(пробовал 1, пробовал 2)
 

r35p3ct

Продвинутый
Сообщения
228
Репутация
60
Re: CaretCoordMode

Код:
Opt("CaretCoordMode", 0) 
Opt("MouseCoordMode", 0)

WinWaitActive("Adobe Flash Player 9")

MouseClick("left", 661, 408, 1)

sleep(500)
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,484
Re: CaretCoordMode

mini
Предупреждение За нарушение общих правил п. Б.5:

5. Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы) - Темы с названием типа "Помагите" и "Пару вопросов", скорее всего, будут удалены. Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.
 
Автор
M

mini

нинзя-черепангел
Сообщения
44
Репутация
1
Re: CaretCoordMode

Я вроде бы правильно назвал тему. Я не разобрался с этой опцией. Поскажите, как правильнее называть надо было тему, пожалуйста.

По теме. сейчас буду пробовать предложенный вариант.

Добавленно: Не получилось. Всё равно по абсолютным кликает.


ИДЕЯ! OPT'ы поставить после проверки активации окна...
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Re: CaretCoordMode

mini [?]
Я вроде бы правильно назвал тему
Все в мире относительно ;D
Надо было назвать как нибудь так: CaretCoordMode - получаю абсолютные координаты вместо относительных
 

r35p3ct

Продвинутый
Сообщения
228
Репутация
60
Re: CaretCoordMode

Код:
Opt("PixelCoordMode", 0)

может это поможет?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,484
Код:
Opt("MouseCoordMode", 0) 

WinWaitActive("Adobe Flash Player 9")
MouseClick("left", 661, 408, 1)


Координаты следует получать через «Au3 Info Tool» при включённом режиме «Options -> Coord Mode -> Client».
 
Автор
M

mini

нинзя-черепангел
Сообщения
44
Репутация
1
УРРРААА!!!
такое заработало:
Код:
WinWaitActive("Adobe Flash Player 9")

Opt("CaretCoordMode", 2);выбираем относительные координаты по экрану
Opt("MouseCoordMode", 2)

MouseClick("left", 664, 407, 1)



sleep(500)
Я был прав. надо было после ожидания активации окна. Всем спасибо. :IL_AutoIt_1:
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,484
mini [?]
надо было после ожидания активации окна
Это никак не влияет. Кстати можно конвертировать координаты экрана в относительные координаты (для определённого окна)...

Код:
#include <WinAPI.au3>

$sTitle = "Adobe Flash Player 9"
WinWaitActive($sTitle)
$hWnd = WinGetHandle($sTitle)

_MouseClickOnScreenCoords("Main", $hWnd, 664, 407, 1)

Func _MouseClickOnScreenCoords($sButton, $hWnd, $iX, $iY, $iSpeed=10)
	Local $Struct = DllStructCreate("int X;int Y")
	
	DllStructSetData($Struct, "X", $iX)
	DllStructSetData($Struct, "Y", $iY)
	
	_WinAPI_ScreenToClient($hWnd, $Struct)
	
	$iX = DllStructGetData($Struct, "X")
	$iY = DllStructGetData($Struct, "Y")
	
	Local $iOld_Opt = Opt("MouseCoordMode", 2)
	MouseClick($sButton, $iX, $iY, $iSpeed)
	Opt("MouseCoordMode", $iOld_Opt)
EndFunc
 
Автор
M

mini

нинзя-черепангел
Сообщения
44
Репутация
1
вот скрипт:
Код:
WinWaitActive("Adobe Flash Player 9")
Opt("CaretCoordMode", 2);выбираем относительные координаты по экрану
Opt("MouseCoordMode", 2)

While 1
   Sleep(100)
 WinWaitActive("Adobe Flash Player 9")   
$var = PixelGetColor(644, 473) ; цвет пикселя на данный момент времени(проверяю на красный крест )
$cvet = 0xFF0000 ;цвет, который нужен мне(красный крестик)
if $var =$cvet Then
WinWaitActive("Adobe Flash Player 9")
Send("999999")
WinWaitActive("Adobe Flash Player 9")
MouseClick("left", 528, 409, 1)
sleep(1000)


EndIf

WEnd




PixelGetColor срабатывает по координатам всего экрана,
а MouseClick по координатам активного окна(в данном примере - Flash Player'a). Может кто-то уже сталкивался с такой проблемой. Как её исправить, чтобы всё было по координатам активного окна.

P.S. Можно ли как-то делать клик, но чтобы курсор мышки не двигался по указанным координатам?
 
Автор
M

mini

нинзя-черепангел
Сообщения
44
Репутация
1
СПАСИБО!!!!!! РАБОТАЕТ!
сорри за шифтанутые буквы, но скрипт, наконецто, заработал :'( :-[
 
Верх