Управление питанием
_______
P.S.
На этом форуме я нашёл как выключать монитор (что есть хорошо)
Господа хорошие, подскажите, пожалуйста, как управлять питанием машины, большего всего интересует сон тачки и её пробуждение. Я уже давно написал себе прогу, которая выключала бы машину (люблю засыпать с музыкой :) Но теперь мне ещё хочеть и просыпаться с музыкой. Можно конечно останавливать проигрывание в Apollo, а потом утричком запускать, но уж больно шумная моя крошка. Мне того ничего, а вот младшего брата это раздражает. Так вот, я хотел бы не выключать свою крошку и не просто останавливать проигрываение в Apollo, а усыпить машину (чтобы кулеры остановились) и очень надеюсь что можно будет разбудить тачку по таймеру (по timeout). Господа подскажите какие функции юзать. Я в MSDN видел функции для управлениями СХЕМАМИ ПИТАНИЯ, но толком не понял что это и с чем его едят :(
Здесь вме просто как 2 пальца:
1 полазий у себя в настройках bios-a если там есть такая опция, то используй её..
2 брось в автозагрузку ярлык своего проигрывателя...
А программно это сделать невозможно, так как все зависит от твоего bios-a
_______
P.S.
На этом форуме я нашёл как выключать монитор (что есть хорошо)
Здесь вме просто как 2 пальца:
1 полазий у себя в настройках bios-a если там есть такая опция, то используй её..
2 брось в автозагрузку ярлык своего проигрывателя...
А программно это сделать невозможно, так как все зависит от твоего bios-a
:D
Здесь вме просто как 2 пальца:
1 полазий у себя в настройках bios-a если там есть такая опция, то используй её..
2 брось в автозагрузку ярлык своего проигрывателя...
А программно это сделать невозможно, так как все зависит от твоего bios-a
:D
Сэр, благодарю Вас за отклик, да только прогу мне не нужно бросать в автозагрузку. Винда ведь может уснуть (перейти в энергосберегающий режим), т.е. ничего не крутиться, ничего не вертиться, а только зелёный огонёк мигает на корпусе моей крошки. Я дёргаю мышь (стучу по клаве) и о чудо, она проснулась. Если это прошито где-то в мозгах моей безмозглой крошки, то я хочу этим воспользоваться. Я согласен, что вероятно есть некая опция в BIOS'е, но мне мало настроить железку, мне нужно чтобы в 07:00 по Москве она очнулась от сна своего. Если есть ещё какие предложения, готов принять. (а в bios'е я покапаюсь)
Сэр, благодарю Вас за отклик, да только прогу мне не нужно бросать в автозагрузку. Винда ведь может уснуть (перейти в энергосберегающий режим), т.е. ничего не крутиться, ничего не вертиться, а только зелёный огонёк мигает на корпусе моей крошки. Я дёргаю мышь (стучу по клаве) и о чудо, она проснулась. Если это прошито где-то в мозгах моей безмозглой крошки, то я хочу этим воспользоваться. Я согласен, что вероятно есть некая опция в BIOS'е, но мне мало настроить железку, мне нужно чтобы в 07:00 по Москве она очнулась от сна своего. Если есть ещё какие предложения, готов принять. (а в bios'е я покапаюсь)
Именно в БИОСе ты можешь установить, во сколько твоя тачка будет загораться... никакого софта нету, чтоб будить комп не трогая мышку или клаву... ;)
Именно в БИОСе ты можешь установить, во сколько твоя тачка будет загораться... никакого софта нету, чтоб будить комп не трогая мышку или клаву... ;)
Ага!:D
Именно в БИОСе ты можешь установить, во сколько твоя тачка будет загораться... никакого софта нету, чтоб будить комп не трогая мышку или клаву... ;)
Угу, я согласен, но ведь BIOS это не кусок безмозглого железа. Windows может остановить (не выключить полностью) машину. Я вот из своей софтины тоже хочу это сделать (чем я хуже Билла?). Руками я не собираюсь править, если это можно сделать программным путём! Если ещё есть предложения - рад выслушать. Но, пожалуйста, примите к сведению мои мыслишки. Благодарю, господа!
Угу, я согласен, но ведь BIOS это не кусок безмозглого железа. Windows может остановить (не выключить полностью) машину. Я вот из своей софтины тоже хочу это сделать (чем я хуже Билла?). Руками я не собираюсь править, если это можно сделать программным путём! Если ещё есть предложения - рад выслушать. Но, пожалуйста, примите к сведению мои мыслишки. Благодарю, господа!
C хорошими материнками вседа идет софт по настройки биоса, поюзай там если влом....
Господа, я дико извеняюсь, но вероятно отсутствие высшего образования сказываеться... Вобщем я, вероятно, не очень корректно выразил свои мысли. Мне нужно перевести машину в режим ожидания. Тачка полностью не выключаеться. Understand? Особенности материнок здесь не причём (Важен сам ATX). Ладно, не буду Вас больше беспокоить. Всем спасибо!
Где то я это читал, как только ссылку найду выложу сюда...
Где то я это читал, как только ссылку найду выложу сюда...
Сэр, я вот сам разобрался (меня просто уже достал этот вопорос и я за 30 мин чтения MSDN нашёл то что не мог найти за две недели)
Вобщем запустити в поиск в MSDN следущего выражения Weke-up events Она вам выдаст самое оно.
Вот пример исходников:
LARGE_INTEGER liDueTime;
// Это параметр указывает интервал таймера
// Как сказано в MSDN если он отрицательный, то он есть относительный (т.е. через такое-то время)
// А если он положительный, то он есть абсолютный. Подробности в Help'е
// Единица измерения интервала 100 наносекунд.
liDueTime.QuadPart=-100000000;
// Это моя функция. Она служит для присвоения нужных привилегий.
// Это нужно в NT системах (для тех кто не знает) В Win98 это не нужно и даже может вызвать ошибку.
SetShutDownPrivilege();
// Здесь мы создаём таймер
hTimer=CreateWaitableTimer(NULL,TRUE, "MyWaitableTimer");
if(!hTimer)ShowMessage("CreateWaitableTimer faild :(");
// А здесь мы его запускаем.
// Очень важен последний параметр - если TRUE то тачка оживёт, если FALSE - то траблы.
if(!SetWaitableTimer(hTimer,&liDueTime, 0, NULL, NULL,TRUE))
{
ShowMessage("SetWaitableTimer is faild :(");
}
// Здесь тачка усыпляеться или переходит в режим ожидания (то что нужно)
//
if(!SetSystemPowerState(TRUE, TRUE))
{
ShowMessage(SysErrorMessage(GetLastError()));
}
Исходники по Borland C++ Builder 5.0 прилагаються
Благодарю всех. Предложения и возражения будут рассмотрены :)
Сэр, я вот сам разобрался (меня просто уже достал этот вопорос и я за 30 мин чтения MSDN нашёл то что не мог найти за две недели)
Вобщем запустити в поиск в MSDN следущего выражения Weke-up events Она вам выдаст самое оно.
Вот пример исходников:
HANDLE hTimer=NULL;
LARGE_INTEGER liDueTime;
// Это параметр указывает интервал таймера
// Как сказано в MSDN если он отрицательный, то он есть относительный (т.е. через такое-то время)
// А если он положительный, то он есть абсолютный. Подробности в Help'е
// Единица измерения интервала 100 наносекунд.
liDueTime.QuadPart=-100000000;
// Это моя функция. Она служит для присвоения нужных привилегий.
// Это нужно в NT системах (для тех кто не знает) В Win98 это не нужно и даже может вызвать ошибку.
SetShutDownPrivilege();
// Здесь мы создаём таймер
hTimer=CreateWaitableTimer(NULL,TRUE, "MyWaitableTimer");
if(!hTimer)ShowMessage("CreateWaitableTimer faild :(");
// А здесь мы его запускаем.
// Очень важен последний параметр - если TRUE то тачка оживёт, если FALSE - то траблы.
if(!SetWaitableTimer(hTimer,&liDueTime, 0, NULL, NULL,TRUE))
{
ShowMessage("SetWaitableTimer is faild :(");
}
// Здесь тачка усыпляеться или переходит в режим ожидания (то что нужно)
//
if(!SetSystemPowerState(TRUE, TRUE))
{
ShowMessage(SysErrorMessage(GetLastError()));
}
Исходники по Borland C++ Builder 5.0 прилагаються
Благодарю всех. Предложения и возражения будут рассмотрены :)
Вот видишь и там все сам сделал а то я пока собирусь, пока крылья расправлю, так что молодец хвалю так держать...