Что нового

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

asvi

Чайник
Сообщения
2
Репутация
0
Здравствуйте, столкнулся со следующей проблемой. Функция GUISetOnEvent определяет изменение положения курсора только, если окно запущенной программы AutoIt активно. То есть, если активировать окно любого другого приложения, программа на движения курсора не реагирует. Как сделать так, чтобы программа реагировала на движение курсора вне зависимости от того какое приложение активно?

Вот пример иллюстрирующий проблему:
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Opt("GUIOnEventMode", 1)

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 248, 295, 805, 227, -1, $WS_EX_TOPMOST)

GUISetState(@SW_SHOW)

GUISetOnEvent ( $GUI_EVENT_MOUSEMOVE, "kursor")
#EndRegion ### END Koda GUI section ###

$a=0.0

While 1
	Sleep(1000)
	$a=1.0
WEnd

Func kursor()
$a=2000
MsgBox(1, '', $a)
EndFunc
 

InnI

AutoIT Гуру
Сообщения
4 214
Репутация
1 115
asvi [?]
чтобы программа реагировала на движение курсора
Можно самостоятельно отслеживать
Код:
$iX = MouseGetPos(0)
$iY = MouseGetPos(1)
Do
  $aPos = MouseGetPos()
  If $aPos[0] <> $iX Or $aPos[1] <> $iY Then
    ConsoleWrite(Abs($aPos[0] - $iX) & ":" & Abs($aPos[1] - $iY) & @CRLF)
    $iX = $aPos[0]
    $iY = $aPos[1]
  EndIf
  Sleep(10)
Until 0
 
Верх