Autor Beitrag
JacFab
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 111



BeitragVerfasst: Mi 04.12.02 21:22 
Wie kann ich wenn ich den handle, und die x,y koordinate des punktes habe, die farbe von ihm auf einem anderem programm herauskriegen?

beispiel:
ich habe ein programm, das heißt moretv. es ist zum fernsehengucken. wenn ich meinen tuner ausschalte, verwandelt sich die fernsehfläche in eine blaue fläche. mein programm soll auf dieses ereigniss reagieren und den pc herunterfahren!

danke schon mal!
OregonGhost
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 215



BeitragVerfasst: Mi 04.12.02 22:36 
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)
ausblenden 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.

_________________
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.