Как показывает mghie, если вы хотите запустить заставку, это не правильный способ сделать это. Самый простой способ это:
SendMessage(Handle, WM_SYSCOMMAND, SC_SCREENSAVE, 0);
По своему опыту я снова согласен с mghie; Я не думаю, что вы можете делать то, что вы хотите сделать. Windows, кажется, работает в другой среде, когда хранитель экрана активен, например Сообщения Windows не распространяются должным образом и т. Д.
Хотя, чтобы попасть на рабочий стол, я ранее использовал дескриптор к контексту устройства рабочего стола.
var
ScreenDC: HDC;
begin
ScreenDC := GetWindowDC(0);
...
// You can then use the Device Context with Windows API methods such as BitBlt
// and StretchBlt to go graphical work on the desktop.}
...
ReleaseDC(0, ScreenDC);