我正在寻找一些帮助,创建一些代码,这些代码将查看屏幕的一个区域,然后在 60 秒后检查它是否已更改。
在它改变之后,我试图通过Skype向一群人发送一条消息,但是我遇到的问题是我无法使用ControlCommand,MouseMove,MouseClick,ControlSend轻松更改聊天...等
我什至尝试在最小化时单击鼠标点击加,但这根本不起作用。
我试图查看的框有问题的坐标是:86, 109, 280, 109
如果有人知道如何做到这一点,我将不胜感激。
看起来您需要使用Skype UDF
和PixelChecksum
,甚至可能需要ImageSearch
ImageCapture
我会说检查所述区域是否发生变化的最佳方法是使用PixelChecksum
,它可以像下面这样使用。
PixelChecksum
代码示例 1
Local $GetAreaChecksumOne = PixelChecksum(86, 109, 280, 109)
Sleep(60000)
Local $GetAreaChecksumTwo = PixelChecksum(86, 109, 280, 109)
While $GetAreaChecksumOne <> $GetAreaChecksumTwo
$GetAreaChecksumTwo = PixelChecksum(86, 109, 280, 109)
Sleep(1000)
ConsoleWrite("Match not found")
WEnd
或者更正常的做法是:
PixelChecksum
代码示例 2
Local $GetAreaChecksumOne = PixelChecksum(86, 109, 280, 109)
While $GetAreaChecksumOne = PixelChecksum(86, 109, 280, 109)
Sleep(100)
WEnd
参考链接:PixelChecksum
若要发送 Skype 消息,如果要将消息发送到 Skype 中收藏的聊天,则需要Skype UDF
。
Skype
代码示例
#include <Skype.au3>
Local $sTopic = "Bookmarked (favourited) chat name here"
Local $aBookMarkedChat = _Skype_ChatGetBookmarked(), $oChattmp = 0
For $i = 0 To UBound($aBookMarkedChat) -1
$oChattmp = $aBookMarkedChat[$i]
If _Skype_ChatGetTopic($oChattmp) = $sTopic Then
_Skype_ChatSendMessage($oChattmp, "Message here")
EndIf
Next
如果您想沿着图像捕获和图像搜索路线前进,请使用类似于以下内容的内容,但是您再次需要ImageSearch UDF
ScreenCapture
和ImageSearch
代码示例
#include <ImageSearch.au3>
#include <ScreenCapture.au3>
Local $XCoords = 0
Local $YCoords = 0
_ScreenCapture_Capture(@DesktopDir & "Compare.png", 86, 109, 280, 109)
Sleep(60000)
$Compare = _ImageSearch(@DesktopDir & "Compare.png", 1, $XCoords, $YCoords, 5)
While $Compare = 0
$Compare = _ImageSearch(@DesktopDir & "Compare.png", 1, $XCoords, $YCoords, 5)
Sleep(1000)
WEnd
FileDelete(@DesktopDir & "Compare.png")
如果你想做一个更通的ImageSearch,那么使用ImageSearchArea(更快,你需要的更好)