Добрый день.
В функции PixelChecksum есть возможность задать параметр $hWnd, определяющий окно, для которого эта функция должна применяться.
У меня стоит следующая задача: на заднем плане висит приложение, в котором происходят события. Увидеть их можно только зрительно. Поэтому наилучший вариант - брать новую хэш-сумму области из того окна и сравнивать со старой.
Однако схема не работает: хэш-сумма берется не из фонового окна, а просто из зрительной области монитора.
Может, у кого-то стояла задача мониторить изменения в приложениях на заднем плане. Гуглить пробовал, с PixelChecksum весь день воюю.
По проблеме нашел такой пост от 2009 года: https://www.autoitscript.com/forum/topic/98080-pixelchecksum-works-not/
Вот мой код:
Переменная $hWnd точно задана, проверял ее командой WinMove.
Подскажите, пожалуйста, кто знает.
В функции PixelChecksum есть возможность задать параметр $hWnd, определяющий окно, для которого эта функция должна применяться.
У меня стоит следующая задача: на заднем плане висит приложение, в котором происходят события. Увидеть их можно только зрительно. Поэтому наилучший вариант - брать новую хэш-сумму области из того окна и сравнивать со старой.
Однако схема не работает: хэш-сумма берется не из фонового окна, а просто из зрительной области монитора.
Может, у кого-то стояла задача мониторить изменения в приложениях на заднем плане. Гуглить пробовал, с PixelChecksum весь день воюю.
По проблеме нашел такой пост от 2009 года: https://www.autoitscript.com/forum/topic/98080-pixelchecksum-works-not/
Вот мой код:
Код:
$hWnd = WinGetHandle("[CLASS:InfoClass]")
$checksum = PixelChecksum(0, 85, 294, 804, 1, $hWnd)
While 1
If $checksum <> PixelChecksum(0, 85, 294, 804, 1, $hWnd) Then
MsgBox(0, "", "В указанной области произошли изменения!")
$checksum = PixelChecksum(0, 85, 294, 804, 1, $hWnd)
EndIf
Sleep(500)
WEnd
Переменная $hWnd точно задана, проверял ее командой WinMove.
Подскажите, пожалуйста, кто знает.