Witam, piszę sobię właśnie aplikację ,która ma za zadanie odnaleźć na ekranie dany pixel/ pixele i przemieścić w to miejsce kursor myszy.
Wszystko działa w miarę ok jak do tej pory. Jestem bardzo początkujący jeżeli chodzi o programowanie a samą aplikację robie przy pomocy filmiku znalezionego na jewtubie.
Chciałbym jednak nieco zmienić aplikację, tak aby działała automatycznie po włączeniu oraz była zapętlona, tzn szukała pixeli cały czas i cały czas trzymała kursor w ich miejscu. Oto mój kod:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
private void frmMain_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
Bitmap bmpScreenshot= Screenshot();
Point location;
bool success= FindBitmap(Properties.Resources.bmpLogin, bmpScreenshot, out location);
Cursor.Position = location;
}
private Bitmap Screenshot()
{
Bitmap bmpScreenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics g = Graphics.FromImage(bmpScreenshot);
g.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size);
return bmpScreenshot;
}
private Boolean FindBitmap(Bitmap bmpNeedle, Bitmap bmpHaystack, out Point location)
{
for( int outerX=0; outerX< bmpHaystack.Width- bmpNeedle.Width; outerX++)
{
for( int outerY=0; outerY< bmpHaystack.Height- bmpNeedle.Height; outerY++)
{
for( int innerX=0; innerX< bmpNeedle.Width; innerX++)
{
for( int innerY=0; innerY< bmpNeedle.Height; innerY++)
{
Color cNeedle=bmpNeedle.GetPixel(innerX,innerY);
Color cHaystack= bmpHaystack.GetPixel( innerX+ outerX, innerY+outerY);
if (cNeedle.R != cHaystack.R || cNeedle.G != cHaystack.G || cNeedle.B != cHaystack.B)
{
goto notFound;
}
}
}location = new Point(outerX,outerY);
return true;
notFound:
continue;
}
}location= Point.Empty;
return false;
}
}
}
Za wszelkie rady serdecznie dziękuję i pozdrawiam.