Option Explicit


Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" ( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long

Private Declare Function GetDesktopWindow Lib "user32" () As Long

Private Declare Function BlockInput Lib "user32" ( _
ByVal fBlock As Long) As Long

Private Declare Sub Sleep Lib "kernel32" ( _
ByVal dwMilliseconds As Long)

Private Const WM_SYSCOMMAND As Long = &H112&
Private Const SC_SCREENSAVE As Long = &HF140&

Sub StartScreenSaver()
'// Starts Default ScrnSaver
'// By Ivan F Moala
Dim lRet As Long

lRet = SendMessage(GetDesktopWindow, WM_SYSCOMMAND, SC_SCREENSAVE, 0&)

'// Make sure SS displays
DoEvents
'// Disable any inputs via mouse or keyboard
BlockInput True
'// pause 10 seconds before unblocking it
Sleep 10000
'// Enable inputs via mouse or keyboard
BlockInput False

End Sub