http://bbs.csdn.net/topics/390356166
namespace WpfApplication1
{
    /// <summary>
    /// Window1.xaml 的交互逻辑
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
            var desk = GetDesktopWindow();
            var dc = GetDC(desk);
            var pix = GetPixel(dc, 100, 200);
            MessageBox.Show(pix.ToString());
        }        public const string USER32 = "user32.dll";        [DllImport(USER32, EntryPoint = "GetDesktopWindow")]
        public static extern IntPtr GetDesktopWindow();
        [DllImport(USER32, EntryPoint = "GetDC", SetLastError = true)]
        public static extern IntPtr GetDC(IntPtr hWnd);
        [DllImport("gdi32.dll")]
        public static extern uint GetPixel(IntPtr hWnd, int XPos, int YPos);
    }
}以上用GetPixel API取屏幕颜色的办法,但是在WIN2008不行
那还有没有其他方法
谢谢

解决方案 »

  1.   

     [DllImport("gdi32.dll")]
            private static extern bool BitBlt(
            IntPtr hdcDest, //目标设备的句柄 
            int nXDest, // 目标对象的左上角的X坐标 
            int nYDest, // 目标对象的左上角的X坐标 
            int nWidth, // 目标对象的矩形的宽度 
            int nHeight, // 目标对象的矩形的长度 
            IntPtr hdcSrc, // 源设备的句柄 
            int nXSrc, // 源对象的左上角的X坐标 
            int nYSrc, // 源对象的左上角的X坐标 
            System.Int32 dwRop // 光栅的操作值 
            );
    这个方法不知道win2008能用不
      

  2.   

    找不到WPF的BitBlt的使用方法            //获得当前屏幕的大小 
                Rectangle rect = new Rectangle();
                rect = Screen.GetWorkingArea(this);
                //创建一个以当前屏幕为模板的图象 
                Graphics g1 = this.CreateGraphics();
                //创建以屏幕大小为标准的位图 
                Image MyImage = new Bitmap(rect.Width, rect.Height, g1);
                Graphics g2 = Graphics.FromImage(MyImage);
                //得到屏幕的DC 
                IntPtr dc1 = g1.GetHdc();
                //得到Bitmap的DC 
                IntPtr dc2 = g2.GetHdc();
                //调用此API函数,实现屏幕捕获 
                BitBlt(dc2, 0, 0, rect.Width, rect.Height, dc1, 0, 0, 13369376);
                //释放掉屏幕的DC 
                g1.ReleaseHdc(dc1);
                //释放掉Bitmap的DC 
                g2.ReleaseHdc(dc2);
                //以JPG文件格式来保存 
                MyImage.Save(@"c:/Capture.jpg", ImageFormat.Jpeg);
                MessageBox.Show("当前屏幕已经保存为C盘的capture.jpg文件!");有个WinFrom的,但在WPF里面不行
    谢谢