Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using System.Drawing;
namespace ImageSearch
{
public class Program
{
public static Int32 iPosX = 0;
public static Int32 iPosY = 0;
[DllImport("ImageSearchDLL.dll")]
public static extern String ImageSearch(Int32 PosX, Int32 PosY, Int32 PosRight, Int32 PosBottom, String Image);
public static void Main(string[] args)
{
if (ImageSearch("bild.png", false, iPosX, iPosY, 0))
{
MessageBox.Show(iPosX + "|" + iPosY);
}
else
{
MessageBox.Show("Not found");
}
}
public static Boolean ImageSearch(String sImage, Boolean resultPosition, Int32 iPosX, Int32 iPosY, Int32 iTolerance)
{
return ImageSearchArea(sImage, resultPosition, 0, 0, SystemInformation.VirtualScreen.Width, SystemInformation.VirtualScreen.Height, iPosX, iPosY, iTolerance);
}
//$findImage,$resultPosition,$x1,$y1,$right,$bottom,ByRef $x, ByRef $y, $tolerance
public static Boolean ImageSearchArea(String sImage, Boolean resultPosition, Int32 iStartX, Int32 iStartY, Int32 iRight, Int32 iBottom, Int32 iPosX, Int32 iPosY, Int32 iTolerance)
{
if (iTolerance > 0) { sImage = "*" + iTolerance + " " + sImage; }
String result = ImageSearch(iPosX, iPosY, iRight, iBottom, sImage);
if (result == "0") { return false; }
String[] aResult = result.Split('|');
iPosX = Convert.ToInt32(aResult[2]);
iPosY = Convert.ToInt32(aResult[3]);
if (resultPosition)
{
iPosX = iPosX + Convert.ToInt32(aResult[4]) / 2;
iPosY = iPosY + Convert.ToInt32(aResult[5]) / 2;
}
return true;
}
}
}