Ganz einfach: Die Screenshot-Taste muss ja auch erstmal behandelt und (infolge dessen) ein Screenshot gemacht werden. Du sendest einfach nur das Event, das kommt dann in die Queue und wird bei Gelegenheit verarbeitet
Bessere Lösung (die außerdem nicht die Zwischenablage missbraucht und den vorherigen Inhalt löscht) wie folgt:
mit GetDesktopWindow() und GetDC() den
DC besorgen und mit BitBlt in ein Bitmap (TBitmap Objekt) kopieren