Próbuję znaleźć określony wzór na środku ekranu w danym obszarze. Używam biblioteki AutoItX
i metody PixelSearch
.PixelWyszukiwanie w pewnym obszarze monitora
- prostokątna X: 1980
- prostokątna Y: 630
- prostokątna Rozmiar X: 1240
- prostokątna Rozmiar Y: 180
To nie wraca, że wzór został znaleziony, ale jeśli ustawię sznury prostokąta na 0, 0
, pokaże się, że wzór został znaleziony.
następujący skrypt używany:
public void MonsterScan()
{
if(SixStarMax() == true)
{
Console.WriteLine("Pattern found");
}
}
public bool SixStarMax()
{
Rectangle rect = new Rectangle(1980, 630, 1240, 180);
autoSumPoint = AutoItX.PixelSearch(rect, 0xF8F0E0); // 0xF8F0E0
autoSumPoint2 = AutoItX.PixelSearch(rect, 0xB7AD9F); // 0xB7AD9F
autoSumPoint3 = AutoItX.PixelSearch(rect, 0xCDC6B8); // 0xCDC6B8
autoSumPoint4 = AutoItX.PixelSearch(rect, 0x949084); // 0x949084
if (rect.Contains(autoSumPoint2) == true && rect.Contains(autoSumPoint2) == true && rect.Contains(autoSumPoint3) == true && rect.Contains(autoSumPoint4) == true)
{
AutoItX.MouseMove(autoSumPoint.X, autoSumPoint.Y);
return true;
}
else
{
return false;
}
}
Edit:
Próbował dostosować cordinates do mojego pierwszego ekranu i pojawia się błąd rzucony.
System.AccessViolationException: 'An attempt was made to read or write to protected memory. This often indicates that other memory is damaged. '
Błąd podobny do tego AccessViolationException pochodzi z natywnej części AutoIt (nie z opakowania .net). Powinieneś spróbować skontaktować się z twórcą AutoIt. –