Moja aplikacija koristi GetCursorPos funkciju da bi došao do koordinata piksela gde se nalazi miš na ekranu. Zatim se uz pomoć ove funkcije
Code:
private static Color GetColorAt(Point location)
{
using (Graphics gdest = Graphics.FromImage(screenPixel))
{
using (Graphics gsrc = Graphics.FromHwnd(IntPtr.Zero))
{
IntPtr hSrcDC = gsrc.GetHdc();
IntPtr hDC = gdest.GetHdc();
int retval = BitBlt(hDC, 0, 0, 1, 1, hSrcDC, location.X, location.Y, (int)CopyPixelOperation.SourceCopy);
gdest.ReleaseHdc();
gsrc.ReleaseHdc();
}
}
return screenPixel.GetPixel(0, 0);
}
private static Color GetColorAt(Point location)
{
using (Graphics gdest = Graphics.FromImage(screenPixel))
{
using (Graphics gsrc = Graphics.FromHwnd(IntPtr.Zero))
{
IntPtr hSrcDC = gsrc.GetHdc();
IntPtr hDC = gdest.GetHdc();
int retval = BitBlt(hDC, 0, 0, 1, 1, hSrcDC, location.X, location.Y, (int)CopyPixelOperation.SourceCopy);
gdest.ReleaseHdc();
gsrc.ReleaseHdc();
}
}
return screenPixel.GetPixel(0, 0);
}
uzima boja tog piksela. Sve ovo lepo radi na WinXp, Win7 i Win8 64b. Na Win32b ova funkcija radi potpuno pogrešno. Prikazuje da se npr. grupa piksela iste boje nalazi par centimetara dole i desno ???? Ne mogu pronaći razlog ovakvog ponašanja aplikacije.
Unapred hvala....