_ln_ const LARGEJNTEGER
*pDueTime,
_ln_ LONG IPeriod,
Jn_opt_ PTIMERAPCROUTINE
pfnCompletionRoutine,
_ln_opt_ LPVOID
IpArgToCompletionRoutine,
_ln_ BOOLfResume
);
где:
hTim er
- дескриптор
таймера,
p D ueTim e
- абсо-
лютное
или
относительное
время (первое определяет мо-
мент первого запуска и являет-
ся величиной положительной,
второе является отрицатель-
ной величиной, выраженной в 100 наносекундных
интервалах),
IPeriod
- режим работы и период по-
вторения срабатываний таймера в миллисекундах
(если равен нулю, таймер сработает однократно).
Параметр
pfnCom pletionRoutine
- указатель на
необязательную функцию асинхронного вызова. Па-
раметр
IpArgToCom pletionRoutine
передает про-
извольный аргумент, например указатель на объект
или структуру, a
bResum e
выводит компьютер из
спящего состояния по срабатыванию таймера.
Синтаксис вызова функции WaitForSingleObjectf)
следующий:
DWORD WINAPI WaitForSingleObject(
_ln_ HANDLE hHandle,
_ln_ DWORD dwMilliseconds
);
где
hO bject
- идентифицирует объект синхрони-
зации, от которого нужно дождаться сигнала,
dw Tim eout
- время ожидания в миллисекундах.
Синтаксис вызова функции перевода таймера в
неактивное состояние CancelWaitableTimer() следу-
ющий:
BOOL WINAPI CancelWaitableTimer(
_ln_ HANDLE hTimer
);
UINT cchReturn,
HANDLE hwndCallback
);
где
IpszCom m and
- коман-
да в виде [команда][устрой-
ство] [параметры],
IpszReturn
String
- буфер для получения
информации
о
результате,
cchReturn
- размер буфера,
h w n d C allback
- каллбэк на
окно отклика.
Последовательность
действий видится
следующей
1
Задаем время будильника в виде количества
■ тиков 100 наносекундных интервалов. Таких
интервалов в 1 секунде ровно 10 миллионов, а при
задании количества миллисекунд их будет 10 000.
Причем положительные значения будут равны аб-
солютному времени, а отрицательные равны отно-
сительному, т.е. от начала текущего момента.
2
Задаем длительность мелодии будильника в
■ миллисекундах.
3 ■ Задаем путь к аудиофайлу и его имя.
4
Через функцию
C reateW aitableTim erW ()
создаем таймер, работающий в ждущем
режиме.
5
Через функцию
SetW aitableTim erf)
уста-
■ навливаем длительность таймера.
6
Полученный дескриптор из последней функ-
■ ции используем для задания интервала за-
держки через функцию
W aitForSingleO bjectf)
с
флагом ожидания выполнения INFINITE.
7
Воспроизводим заданную мелодию через
■ функцию
M ClSendStringO
.
8
Переводим таймер в неактивное состояние
■ через функцию
CancelW aitableTim er()
.
По-
следнее, при закрытии приложения, является не-
обязательным.
где
hTim er
- дескриптор таймера, полученный
при создании таймера CreateWaitableTimerW().
Но какой же будильник без мелодии пробуж-
дения? Как заставить звучать наше приложе-
ние? На помощь приходит интерфейс управле-
ния устройствами MCI (Media Control Interface),
позволяющий программам под Windows рабо-
тать с различными устройствами мультимедиа,
в том числе и воспроизвести аудио. Каждому
устройству соответствует свой конкретный на-
бор команд. Нас интересует синтаксис вызова
функции команд строк MciSendString():
MCIERROR mciSendString(
LPCTSTR IpszCommand,
LPTSTR IpszReturnString,
Настройка плана электропитания "Сбалансированный“
выверит* параметры
стоите
режим* и дисплея у» этого «омпыотер*.
і
тф
Электропитание
î?
П
ù
Затемнит» дисплей:
Отключать дисплей
А Переводить КОМЛМСТЄР
в «ИПЦИЙ
” рею«*
Ш
, Пестреть яркость план*
Изменить дополнительные параметры питан»»
восстанемте для плане параметры «о увммимим
Рис. 7. Активация
таймеров п р о-
буж дения в
Windows 7
йтапчпеяеиыв парам* тсы
Выберите план электропитания, который нужно
настроить. * затем выберите нужные пврвмет-ры ля*
управления
питанием
компьютер*.
Сбалансированный | Активен'
W
i.
Сон после
■■к
Разрешить гибридный с «вший режим
Ss Гибернация »ося*
От батареи;
мин
О» сети; Л 00 тш
• ?»Ч?еиптТь таймеры пробужден«*
Отбатарык Отключит»
От се»иг
Параметры US8
; Кнопки питан«» и крышка
. . ftC!
£ятх*т
.
предыдущая страница 28 Компьютер 2014 02 читать онлайн следующая страница 30 Компьютер 2014 02 читать онлайн Домой Выключить/включить текст