|
Данный пример покажет, как можно определить
"Загружен ли в данный момент хранитель
экрана", а также запустить хранитель экрана.
Данный пример еще можно дополнить ответом на
вопрос "А как программно отключить
хранитель экрана?". Я пока ответа не знаю. Если вы знаете ответ,
напишите мне
Расположите на форме 3 элемента CommandButton,
элемент Timer.
Нажмите на кнопку 2. Через несколько секунд
запустится хранитель экрана. Через 6 секунд
пошевелите мышкой, хранитель экрана закроется. И
вы увидите на форме MsgBox с сообщением,
была загружена заставка. При нажатии на кнопку 3
вы получите время, через которое запускается
хранитель экрана. Const SPI_GETSCREENSAVEACTIVE = 16
Const SPI_GETSCREENSAVETIMEOUT = 14
Private Declare Function SystemParametersInfo Lib "user32" Alias
"SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam
As Any, ByVal fuWinIni As Long) As Long
'6 нижеследующих строчек нужны для запуска
хранителя экрана
Const WM_SYSCOMMAND = &H112&
Const SC_SCREENSAVE = &HF140&
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 Sub Command2_Click()
Call SendMessage(Me.hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0&)
End Sub
'нажав на кнопку при незапущенном хранителе
экрана вы получите сообщение "False"
Private Sub Command1_Click()
Dim blnReturn As Boolean
Dim blnActive As Boolean
Call SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, vbNull, blnReturn, 0)
blnActive = blnReturn
MsgBox blnActive
Timer1.Enabled = False 'выключить таймер
End Sub
Private Sub Form_Load()
Timer1.Interval = 5000 'установить временной интервал
таймера 5 секунд
Timer1.Enabled = True 'включить таймер
End Sub
Private Sub Timer1_Timer()
Command1_Click 'имитурем нажатие на клавишу 1
End Sub
Private Sub Command3_Click()
Dim intValue As Integer
Call SystemParametersInfo(SPI_GETSCREENSAVETIMEOUT, vbNull, intValue, 0)
MsgBox ("Скринсэйвер включается через " & intValue
& " секунд.")
End Sub
|
|