C#鼠标获取不到屏幕颜色

在网上查了一些资料几乎都是同一个答案,我按照这样做了但是每次获取到的颜色都是白色,不管鼠标点哪里都一样,后来我吧传入的坐标直接设成(100,100)结果依然是白色看了一下
///
/// 获取指定窗口的设备场景
///
/// 将获取其设备场景的窗口的句柄。若为0,则要获取整个屏幕的DC
/// 指定窗口的设备场景句柄,出错则为0
[DllImport("user32.dll")]
public static extern IntPtr GetDC(IntPtr hwnd);

我想是不是这个函数返回值是出错的情况,有哪位大神指导一下,到底什么原因

你这个引用的是c++写的dll。具体写了什么的话就不知道了。

  在VS2012中创建一个C#的Windows窗口应用程序,然后在Form上添加PictureBox和Button两个控件,并加入以下代码。
        [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();
    }
            这是网上的,你先建按照上面说的,看看是不是很获取到,如果能获取到,就是你的程序问题了。http://www.cnblogs.com/wuqianling/p/5958138.html

http://blog.csdn.net/dufangfeilong/article/details/40372725 这个例子也很好。关键看你会不会用

需要把项目架构改为x86,这么老的帖子不知道还有没有人看到。