我目前在循环中截取一个区域的屏幕截图,然后在其中搜索4个像素.这些像素的颜色相同 - 红色或$ 001300FF .使用的变量在OnCreate事件中定义和初始化:
//The variables for the area:
ScanL := 500; // Left
ScanR := 800; // Right
ScanT := 180; // Top
ScanB := 400; // Bottom
screenshot: TBitMap;
canvas : TCanvas;
Run Code Online (Sandbox Code Playgroud)
要截取屏幕截图,我使用以下功能:
procedure TFormMain.GetSCREENSHOT(var a: TBitMap);
var
Locked: Boolean;
begin
Locked := Canvas.TryLock;
try
screenshot.Canvas.CopyRect(screenshot.Canvas.ClipRect, Canvas, Rect(ScanL, ScanT, ScanR, ScanB));
finally
if Locked then
Canvas.Unlock;
end;
end;
Run Code Online (Sandbox Code Playgroud)
全局定义的变量" screenshot:TBitMap "将传递给GetSCREENSHOT函数.要搜索这4个像素,我只是做了一个新手会做的事情:
function TFormMain.findImage : Boolean;
var
x,y : Integer;
begin
Result := false; …Run Code Online (Sandbox Code Playgroud)