All pastes #481909 Raw Edit

Stuff

public text v1 · immutable
·published 2007-05-11 01:49 UTC
rendered paste body
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Text;

namespace YASB
{
    class AutoItX
    {
        #region Singleton
        static readonly AutoItX m_Instance=new AutoItX();

        // Explicit static constructor to tell C# compiler
        // not to mark type as beforefieldinit
        static AutoItX()
        {
        }

        public static AutoItX Instance
        {
            get
            {
                return m_Instance;
            }
        }
        #endregion

        public AutoItX3Lib.AutoItX3Class Au3;

        public AutoItX()
        {
            this.Au3 = new AutoItX3Lib.AutoItX3Class();

            // Set coord modes to ClientArea, just like the pixel scanner class
            this.Au3.Opt("PixelCoordMode", 2);
            this.Au3.Opt("MouseCoordMode", 2);
        }

        public Color PixelGetColorRGB(int x, int y)
        {
            return Color.FromArgb(this.Au3.PixelGetColor(x, y));
        }

        [DllImport("C:\\Program Files\\AutoIt3\\AutoItX\\AutoItX3.dll", EntryPoint = "AU3_PixelChecksum")]
        [DllImport("AutoItX3.dll", EntryPoint = "AU3_PixelChecksum")]
        

        public static extern int PixelChecksumInterop(int x1, int y1, int x2, int y2, int step);

        public uint PixelChecksum(int x1, int y1, int x2, int y2, int step)
        {
            return (uint)PixelChecksumInterop(x1, y1, x2, y2, step);
        }

        public uint PixelChecksumAdler(int x1, int y1, int x2, int y2, int step)
        {
            Pixel.Pixel myScanner = new Pixel.Pixel(Pixel.ScreenOffset.ClientArea);
            int[] found = myScanner.GetArea(x1, y1, x2, y2, step);

            return Adler32.HashCore(found);
        }

        public int PixelChecksum3(int x1, int y1, int x2, int y2, int step)
        {
            Pixel.Pixel myScanner = new Pixel.Pixel(Pixel.ScreenOffset.ClientArea);
            int[] found = myScanner.GetArea(x1, y1, x2, y2, step);

            return found.GetHashCode();
        }
        /*
        public string PixelChecksumMD5(int x1, int y1, int x2, int y2, int step)
        {
            Pixel.Pixel myScanner = new Pixel.Pixel(Pixel.ScreenOffset.ClientArea);
            int[] found = myScanner.GetArea(x1, y1, x2, y2, step);
            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();

            byte[] buf = new byte[found.Length];

            int x=0;
            foreach(int f in found)
            {
                byte[] t=BitConverter.GetBytes(f);
                for(int y=0;y<4;y++)
                    buf[y + x] = t[y];
                x+=4;
            }

            /*
            for(int i=0;i<found.Length;i++)
            {
                byte[] t = BitConverter.GetBytes(found[i]);

                for(int y=0;y<4;y++)
                    buf[i+y]=t[y];
            }

            return md5.ComputeHash(buf).ToString();
        }*/
        /*
        public Checksum PixelChecksum4(Point leftTop, Point leftBottom, Point rightTop, Point rightbottom, int step)
        {
            Checksum tempChecksum = new Checksum();
            tempChecksum.Left = AutoItX.Instance.PixelChecksumAdler(leftTop.X, leftTop.Y, leftBottom.X, leftBottom.Y, 5);
            tempChecksum.Right = AutoItX.Instance.PixelChecksumAdler(rightTop.X, rightTop.Y, rightbottom.X, rightbottom.Y, 5);
            return tempChecksum;
        }*/

        public Checksum PixelChecksum5(Point leftTop, Point leftBottom, Point rightTop, Point rightbottom, int step)
        {
            Checksum tempChecksum = new Checksum();
            tempChecksum.Left = (ulong)AutoItX.Instance.Au3.PixelChecksum(leftTop.X, leftTop.Y, leftBottom.X, leftBottom.Y, 5);
            tempChecksum.Right = (ulong)AutoItX.Instance.Au3.PixelChecksum(rightTop.X, rightTop.Y, rightbottom.X, rightbottom.Y, 5);
            return tempChecksum;
        }

        public int[] PixelChecksum6(int x1, int y1, int x2, int y2, int step)
        {
            Pixel.Pixel myScanner = new Pixel.Pixel(Pixel.ScreenOffset.ClientArea);
            int[] found = myScanner.GetArea(x1, y1, x2, y2, step);

            return found;
        }

        public void Paste(string text)
        {
            m_Instance.Au3.ClipPut(text);
            m_Instance.Au3.Send("^v", 0);
        }
    }
}