1

我正在寻找一些帮助来创建一些代码,这些代码将查看我的屏幕区域,然后在 60 秒后检查它是否已更改。

更改后,我尝试通过 Skype 向一群人发送消息,但我遇到的问题是我无法使用 ControlCommand、MouseMove、MouseClick、ControlSend 等轻松更改聊天

我什至尝试在最小化时单击 MouseClickPlus,但这根本不起作用。

我要查看的框的相关坐标是:86, 109, 280, 109

如果有人知道如何做到这一点,我将不胜感激。

4

1 回答 1

6

看起来你需要使用andSkype UDF或者PixelChecksum甚至ImageSearchImageCapture

我会说检查上述区域是否发生变化的最佳方法是使用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 UDF如果您想将消息发送到 Skype 中最喜欢的聊天,您将需要 。

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

ScreenCaptureImageSearch代码示例

#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 (更快,更适合您的需要)

于 2013-11-09T23:34:37.050 回答