Quellatalo.Nin.TheEyes 0.1.0

This TheEyes library provides methods to read and find images on the screen. A part of alternative tools to sikulix.

There is a newer version of this package available.
See the version list below for details.
Install-Package Quellatalo.Nin.TheEyes -Version 0.1.0
dotnet add package Quellatalo.Nin.TheEyes --version 0.1.0
<PackageReference Include="Quellatalo.Nin.TheEyes" Version="0.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Quellatalo.Nin.TheEyes --version 0.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
    /// <summary>
    /// A test to have TheHands and TheEyes working together
    /// Preparation: Open Microsoft Paint, with full canvas ready
    /// This code will:
    /// - focus on Paint, demonstrate the recognition
    /// - draw something on canvas
    /// - duplicate the drawing
    /// - once again find all similar drawings on the canvas
    /// </summary>
    void HandsAndEyesTest()
    {
        // Look for a window which has "paint" in title and bring it to front
        App app = App.GetAppByWindowTitle("paint");
        app.ToFront();

        // Highlight the Paint's window area
        Area area = new Area(app.GetMainWindowRectangle());
        area.Highlight(new SolidBrush(Color.FromArgb(63, Color.Red)));
        Thread.Sleep(2222); // wait, just to observer
        Area.ClearHighlight(); // clear the highlight

        // Prepare some points to draw in sequence
        Point[] points1 = new Point[] // 1st stroke
        {
            new Point(area.Center.X-10,area.Center.Y-10),
            new Point(area.Center.X+10,area.Center.Y-10),
            new Point(area.Center.X+10,area.Center.Y+10),
            new Point(area.Center.X-10,area.Center.Y+10)
        };
        Point[] points2 = new Point[] // 2nd stroke
        {
            new Point(area.Center.X-14,area.Center.Y-14),
            new Point(area.Center.X+14,area.Center.Y-14),
            new Point(area.Center.X+14,area.Center.Y+14),
            new Point(area.Center.X-14,area.Center.Y+14)
        };

        Mouse.DefaultMouseActionDelay = 111; // set some delay after each mouse action, it's easier to observe

        // Draw on Paint's canvas
        Mouse.LeftDrag(points1);
        Mouse.LeftDrag(points2);

        Keyboard.DefaultKeyboardActionDelay = 41; // set some delay after each keyboard action

        // Switch to Paint's select mode
        Keyboard.KeyDown(Keys.LControlKey);
        Keyboard.KeyTyping(Keys.A);
        Keyboard.KeyUp(Keys.LControlKey);
        Keyboard.KeyTyping(Keys.Escape);

        // The drawing's area
        Area myDrawingArea = new Area(
            new Rectangle(
                new Point(area.Center.X - 16, area.Center.Y - 16),
                new Size(32, 32)));

        // In Paint, select the drawing
        Mouse.LeftDrag(
            myDrawingArea.TopLeft,
            myDrawingArea.BottomRight);

        // Make a copy of the drawing
        Keyboard.KeyDown(Keys.LControlKey);
        Keyboard.KeyTyping(Keys.C);
        Keyboard.KeyTyping(Keys.V);
        Keyboard.KeyUp(Keys.LControlKey);
        Keyboard.KeyTyping(Keys.Escape);

        // Find all the same drawings on Paint's window
        using (Pattern pattern = new Pattern(myDrawingArea.GetDisplayingImage()))
        {
            List<Match> matches = area.FindAll(pattern);
            foreach (Match match in matches)
            {
                match.Highlight();
            }
            Thread.Sleep(2222);
            Area.ClearHighlight();
        }
    }
    /// <summary>
    /// A test to have TheHands and TheEyes working together
    /// Preparation: Open Microsoft Paint, with full canvas ready
    /// This code will:
    /// - focus on Paint, demonstrate the recognition
    /// - draw something on canvas
    /// - duplicate the drawing
    /// - once again find all similar drawings on the canvas
    /// </summary>
    void HandsAndEyesTest()
    {
        // Look for a window which has "paint" in title and bring it to front
        App app = App.GetAppByWindowTitle("paint");
        app.ToFront();

        // Highlight the Paint's window area
        Area area = new Area(app.GetMainWindowRectangle());
        area.Highlight(new SolidBrush(Color.FromArgb(63, Color.Red)));
        Thread.Sleep(2222); // wait, just to observer
        Area.ClearHighlight(); // clear the highlight

        // Prepare some points to draw in sequence
        Point[] points1 = new Point[] // 1st stroke
        {
            new Point(area.Center.X-10,area.Center.Y-10),
            new Point(area.Center.X+10,area.Center.Y-10),
            new Point(area.Center.X+10,area.Center.Y+10),
            new Point(area.Center.X-10,area.Center.Y+10)
        };
        Point[] points2 = new Point[] // 2nd stroke
        {
            new Point(area.Center.X-14,area.Center.Y-14),
            new Point(area.Center.X+14,area.Center.Y-14),
            new Point(area.Center.X+14,area.Center.Y+14),
            new Point(area.Center.X-14,area.Center.Y+14)
        };

        Mouse.DefaultMouseActionDelay = 111; // set some delay after each mouse action, it's easier to observe

        // Draw on Paint's canvas
        Mouse.LeftDrag(points1);
        Mouse.LeftDrag(points2);

        Keyboard.DefaultKeyboardActionDelay = 41; // set some delay after each keyboard action

        // Switch to Paint's select mode
        Keyboard.KeyDown(Keys.LControlKey);
        Keyboard.KeyTyping(Keys.A);
        Keyboard.KeyUp(Keys.LControlKey);
        Keyboard.KeyTyping(Keys.Escape);

        // The drawing's area
        Area myDrawingArea = new Area(
            new Rectangle(
                new Point(area.Center.X - 16, area.Center.Y - 16),
                new Size(32, 32)));

        // In Paint, select the drawing
        Mouse.LeftDrag(
            myDrawingArea.TopLeft,
            myDrawingArea.BottomRight);

        // Make a copy of the drawing
        Keyboard.KeyDown(Keys.LControlKey);
        Keyboard.KeyTyping(Keys.C);
        Keyboard.KeyTyping(Keys.V);
        Keyboard.KeyUp(Keys.LControlKey);
        Keyboard.KeyTyping(Keys.Escape);

        // Find all the same drawings on Paint's window
        using (Pattern pattern = new Pattern(myDrawingArea.GetDisplayingImage()))
        {
            List<Match> matches = area.FindAll(pattern);
            foreach (Match match in matches)
            {
                match.Highlight();
            }
            Thread.Sleep(2222);
            Area.ClearHighlight();
        }
    }

Release Notes

First release.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Quellatalo.Nin.TheEyes:

Package Downloads
CShauto
An RPA C# library with provide some methods to manipulate Images, Mouse and Keyboard

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
0.3.0 450 10/29/2018
0.2.5.1 415 5/23/2018
0.2.5 396 5/22/2018
0.2.4.2 455 5/10/2018
0.2.4.1 453 4/23/2018
0.2.4 434 4/23/2018
0.2.3.1 474 4/18/2018
0.2.3 391 4/13/2018
0.2.2 426 4/6/2018
0.2.1 449 3/1/2018
0.2.0 458 2/16/2018
0.1.3 487 2/6/2018
0.1.2.2 528 1/26/2018
0.1.2.1 421 1/12/2018
0.1.2 433 12/27/2017
0.1.1.1 379 12/13/2017
0.1.1 446 12/11/2017
0.1.0.1 405 12/1/2017
0.1.0 556 11/27/2017
Show less