Also, erstmal ist die Farbe nicht auf einem anderen Programm, sondern auf einem Fenster des Programms.
Davon abgesehen funktioniert das Capturing mit dem so genannten Overlaymodus, das heißt sinngemäß, dass deine TV-Karte Daten direkt an die Grafikkarte sendet und nicht den Umweg über Windows macht. Wenn du jetzt also <Druck> drückst, kann es sein, dass die Fläche schwarz ist, wenn das Programm nicht entweder regelmäßig sein Fenster aktualisiert oder direkt einen Preview-Modus wie VirtualDub unterstützt.
Wenn jedenfalls die Pixel des Fensters tatsächlich eingefärbt sein sollten, kannst du mit (aber ohne deinen Handle)
Quelltext
1: 2: 3: 4: 5: 6:
| var dc: THandle; color: TColor; ... dc := GetDC(0); color := GetPixel(dc, x, y); ReleaseDC(0, dc); |
die Farbe des Pixels auf dem Bildschirm (wie Windows ihn betrachtet!) an der Stelle (x,y) auslesen.
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.