Als ich ein Konsolenprogramm nicht beenden konnte, fand ich heraus, dass Sendmessage der Verursacher war.
Man sollte sich angewöhnen, Sendmessage durch Postmessage zu ersetzen, wenn man keine Blockade verursachen will.
http://msdn.microsoft.com/de-de/library/bb979347.aspx
Delphi-Quellcode:
program DISPLAYOFF; //oder DISPLAYON
//{$APPTYPE CONSOLE}
uses
Windows;
const WM_SYSCOMMAND = 274;
MONITOR_OFF = 2;
MONITOR_ON = -1;
Begin
sleep(2000); // muss sein!!! kann aber evtl auch 500 reichen
PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF);//MONITOR_ON
sleep(2000); // kann entfallen
Exit;
end.