तो मैं किसी दिए गए क्षेत्र में स्क्रीन के बीच में एक निश्चित पैटर्न खोजने की कोशिश कर रहा हूं। मैं AutoItX
लाइब्रेरी और PixelSearch
विधि का उपयोग कर रहा हूं।मॉनिटर के कुछ क्षेत्र में पिक्सलशर्च
- आयत एक्स: 1980
- आयत Y: 630
- आयत साइज़ एक्स: 1240
- आयत आकार Y: 180
यह लौटने नहीं कर रहा है कि पैटर्न पाया गया है लेकिन अगर मैं आयत के तारों को 0, 0
पर समायोजित करता हूं तो यह दिखाता है कि पैटर्न पाया गया है।
निम्नलिखित इस्तेमाल किया स्क्रिप्ट:
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;
}
}
संपादित करें:
मेरी पहली स्क्रीन पर cordinates समायोजित करने के लिए कोशिश की और मैं एक त्रुटि फेंक दिया मिलता है।
System.AccessViolationException: 'An attempt was made to read or write to protected memory. This often indicates that other memory is damaged. '
इस तरह एक एक्सेसविलेशन अपवाद त्रुटि ऑटोआईट (नेट रैपर से नहीं) के मूल भाग से आता है। आपको ऑटोआईटी निर्माता से संपर्क करने का प्रयास करना चाहिए। –