"Корректный" способ сделать это должно ответить на сообщение WM_SYSCOMMAND. В C# это выглядит примерно так:
protected override void WndProc(ref Message m)
{
// Abort screensaver and monitor power-down
const int WM_SYSCOMMAND = 0x0112;
const int SC_MONITOR_POWER = 0xF170;
const int SC_SCREENSAVE = 0xF140;
int WParam = (m.WParam.ToInt32() & 0xFFF0);
if (m.Msg == WM_SYSCOMMAND &&
(WParam == SC_MONITOR_POWER || WParam == SC_SCREENSAVE)) return;
base.WndProc(ref m);
}
Согласно MSDN, если пароль экранной заставки включен политикой в отношении Vista или выше, это не будет работать. По-видимому, программно перемещение мыши также проигнорировано, хотя я не протестировал это.
Вы можете попробовать войти в установку и посмотреть, что можно отследить. Попробуйте запустить установщик из командной консоли следующим образом:
msiexec.exe /i [msi filename] /log [filepath\logfilename.log]