有時候要獲取屏幕某一點的坐標顏色值,可以如下實現:
在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移動鼠標就能獲得屏幕點的坐標了。
