C#獲取屏幕鼠標所指點的顏色


有時候要獲取屏幕某一點的坐標顏色值,可以如下實現:

 

在VS2012中創建一個C#的Windows窗口應用程序,然后在Form上添加PictureBox和Button兩個控件,並加入以下代碼。

        //需要這個命名空間:
        //using System.Runtime.InteropServices;

        [DllImport("user32.dll")]//取設備場景 
        private static extern IntPtr GetDC(IntPtr hwnd);//返回設備場景句柄 
        [DllImport("gdi32.dll")]//取指定點顏色 
        private static extern int GetPixel(IntPtr hdc, Point p);

        private void button1_Click(object sender, EventArgs e)
        {
            Timer tim = new Timer();
            tim.Interval = 1;
            tim.Tick += delegate
            {
                Point p = new Point(MousePosition.X, MousePosition.Y);//取置頂點坐標 
                IntPtr hdc = GetDC(new IntPtr(0));//取到設備場景(0就是全屏的設備場景) 
                int c = GetPixel(hdc, p);//取指定點顏色 
                int r = (c & 0xFF);//轉換R 
                int g = (c & 0xFF00) / 256;//轉換G 
                int b = (c & 0xFF0000) / 65536;//轉換B 
                pictureBox1.BackColor = Color.FromArgb(r, g, b);
            };
            tim.Start();
        }
 

運行后點擊Button移動鼠標就能獲得屏幕點的坐標了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM