Nicht nur in diesem Fall passiert das. Auch dann, wenn man auf den Rechner per Remote Desktop zugreift bzw. danach wieder auf die echten Monitore umgeschaltet wird.
WM_SETTINGCHANGE wird dann aufgerufen. Das brauchte ich auch schon mal wegen eines anderen Problems.
When Screen.Monitor[x].WorkAreaRect contains garbage
Edit: CodeZwerg war schneller