Habs es zum Teil hinbekommen. Ich habe mir eine
DLL geschrieben die sich an WndProc des Fensters "hookt". Dort wird dann durch eine eigene User-Message ein WM_PRINT ausgelösst und der Inhalt dann in ein TBitmap gespeichert. Leider wird nicht immer das komplette Fenster kopiert (anders als oben, hier fehlen Teile im Fenster). Das liegt daran, das in der OnPaint-Methode vom Fenster mit BeginPaint (EndPaint) ein neuer (anderer) Context erzeugt wird und somit nicht in mein TBitmap gelangt. Laut dieser Seite:
http://www.fengyuan.com/article/wmprint.html muss dazu noch die BeginPaint und EndPaint Funktion umbiegen und durch eigene ersetzen. Das ist mir aber zu aufwendig, vielleicht kennt ja jemand noch eine andere Lösung.