Zitat:
Dann denke ich, dass mein Problem hier ist, aber ich weiß nicht, wie ich es lösen soll.
Wenn das C sample funktioniert sollte es das auch tun wenn die Enumerierung erfolgreich war.
Meine Vermutung ist das dein Problem die Funktion GetTopWindow ist die ist nicht zuverlässig.
Das hier ist aber schon mal unnötig auch wenn es jetzt direkt nichts mit dem Problem zu tun hat.
Delphi-Quellcode:
DeleteObject(hBmpScreen);
DeleteDC(_hDcScreen);
hBmpScreen := hBmpScreenResized;
_hDcScreen := hDcScreenResized;
end;
bmp := TBitmap.Create;
bmp.Handle := hBmpScreen;
bmp.SaveToFile('output.bmp');
bmp.Free;
du löschst das _hDcScreen
weist diesen ein neues zu und zwar das des hDcScreenResized
Und anschließend wird das _hDcScreen nicht mehr verwendet.
Das sieht mir sehr nach einem Speicherleck aus..
Google mal nach GetTopWindow
gruss