Also 1.
Einen Canvas (TCanvas) zu erstellen und nach ein paar Millesec. wieder zu
zerstören halte ich für keine gute Idee. Das geht einfacher und effektiver.
Delphi-Quellcode:
function TForm1.LogCheck(): Boolean;
var
hDeskDC: HDC;
hDeskWnd: HWND;
begin
Result := FALSE;
hDeskWnd := GetDesktopWindow;
hDeskDC := GetDC(hDeskWnd);
if hDeskDC <> 0
then
begin
if Windows.GetPixel(hDeskDC, 487, 481) =
RGB(255, 255, 255)
then Result := TRUE
else Result := FALSE;
end;
ReleaseDC(hDeskWnd, hDeskDC);
end;
( Code ist nicht von mir getestet, also selber nachgucken. )
2.)
Schlägt eine IF-Abfrage (
if DHandle<>0 then ) fehl weil etwas nicht stimmt
hat deine Function keinen vordef. Rückgabewert. Die Whileschleife kann sich u.U. einen Wolf
laufen.
// Edit:
Vergiss in deiner While-Schleife nicht
Application.ProcessMessages einzubauen, sonst
hängt dein Programm weil dieMessages nicht weiterverarbeitet werden.