像素搜索并单击右侧像素

时间:2016-01-18 19:49:50

标签: autohotkey

IF NOT A_IsAdmin ; Runs script as Admin.
{
   Run *RunAs "%A_ScriptFullPath%"
   ExitApp
}

#MaxThreadsPerHotkey, 2
CoordMode, Pixel, Screen
#singleInstance, Force
toggle = 0


upperLeftX := 750
upperLeftY := 400
lowerRightX := 850
lowerRightY := 500

F8::  ; press F8 to toggle the loop on/off.
SoundBeep
Toggle := !Toggle
While Toggle
{ ;-- Begin of loop.

PixelSearch, X, Y,%upperLeftX%, %upperLeftY%, %lowerRightX%, %lowerRightY%, 0x000000, 0, Fast RGB



IF ErrorLevel = 1   ; IF NOTFound.  
{
sleep, 100
}

IF ErrorLevel = 0   ; IF Found. 
{ 

MouseClick, left                        
sleep, 300
}

} ;-- End of Loop.
return

F8开始循环,此代码检查矩形中的特定像素并发送左键单击。

适用于[MouseClick, left, %X%, %Y%]。但我想知道如何使用 dllcall鼠标事件点击特定像素。

例如

DllCall("mouse_event",uint,1,int,%X%,int,%Y%,uint,0,int,0)

但它不起作用

1 个答案:

答案 0 :(得分:0)

我怀疑你真的想通过DLL调用来做这件事。 mouse_event甚至不采用坐标,但值在0-65535之间 如果您希望能够点击屏幕上的任何像素,请确保将其设置为相对于屏幕:CoordMode, Mouse, Screen

如果您不想通过该点击影响鼠标指针,请使用ControlClick / PostMessage / SendMessage。或者使用MouseClick / Click。或MouseMove+Send, {LButton}