如何在非活动窗口上使用PixelSearch()?

时间:2013-11-29 03:03:33

标签: windows pixel autoit

由于$hwnd参数,我认为PixelSearch()应该在非活动窗口上工作,但我不能这样做。当另一个窗口放在要搜索的窗口前面时,它会失败。

我的剧本:

$hwnd = WinGetHandle("[CLASS:MSPaintApp]")
$Cor = PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, 0x39B6EF, 0, 1, $hwnd)
If Not @error Then
    MouseMove($Cor[0], $Cor[1])
Else
    MsgBox(0, "", @error)
EndIf

如何在非活动窗口上进行此操作?

1 个答案:

答案 0 :(得分:0)

确保您要搜索的窗口处于活动状态(如果我正确阅读了问题)的简单修复。 WinActive检查窗口是否处于活动状态,以及窗口是否为0(未激活)。然后,我们使用WinActivate激活窗口。

Local $hwnd, $Cor
$hwnd = WinGetHandle("[CLASS:MSPaintApp]")
If WinActive($hwnd) = 0 Then
    WinActivate($hwnd)
EndIf
$Cor = PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, 0x39B6EF, 0, 1, $hwnd)
If Not @error Then
    MouseMove($Cor[0], $Cor[1])
Else
    MsgBox(0, "", @error)
EndIf