|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Май 7, 2004 13:49:42 Доброго времени суток, господа. Не подскажете как можно реализовать следующие задачи: - отключение/включение монитора; - остановка/запуск жестких дисков(так как это делает системный "гаситель"); - перевод ЦПУ в режим STANDBY и обратно; - отключение/включение музыки. Задача, как я понимаю не простая, но буду очень рад если вы поможете мне хоть с чем-то из этого. А пишу я что-то вроде того самого системного гасителя. Заранее очень благодарен! |
|
|
Дата: Май 7, 2004 14:01:47 |
|
|
Дата: Май 7, 2004 14:06:39 Забавно :) Ну а все-таки? Может я не совсем корректно выразился, имелось ввиду не на физическом плане выключение а на программном, т.е. монитор просто погасить, музыку запретить, жесткие диски сам пока не понимаю как останавливают, но система это делает. А с поцессором так я вообще в панике, абсолютно без понятия как его можно притормозить, СЛИП что-ли или что... |
|
|
Дата: Май 8, 2004 02:20:31 Tristania А не проще ли через API послать его в Hibernate? Это же можно сделать даже через rundll, не прибегая к программированию. |
|
|
Дата: Май 10, 2004 12:13:39 насчёт cpu - HLT насчёт винтов есть впециальные комманды управления энергопотреблением и шумом насчёт монитора поройся в RSDN, там как то через WM_SYSCOMMAND было дело, я делал это как то на низком уровне, зайди на www.codenet.ru и отыщи исходник моего старого вируса hellicon, там это делалось, отключение музыки, тоже смотри в RSDN, там в статьях Зайцева этот вопрос освещался а вообще http://www.nondot.org/sabre/ там кое что есть интересное |
|
|
Дата: Май 10, 2004 15:42:15 CARDINAL Дык, в user-mode, кажись: HLT, не останавливает процессор, а действует только на процесс, в котором она выполнилась... Если бы, это было не так, то любой процесс мог бы нарушить работу всей системы... |
|
|
Дата: Май 10, 2004 16:41:28 · Поправил: Oleg_SK Tristania Тебе надо уточнить: для какой оси ты хочешь написать программку. - отключение/включение монитора; Вот так это делается под Windows 98: invoke SendMessage, hWin, WM_SYSCOMMAND, SC_MONITORPOWER, NULL ; выключить монитор invoke SendMessage, hWin, WM_SYSCOMMAND, SC_MONITORPOWER, -1; включить монитор под Windows 2000+, этот вариант не пройдет. - перевод ЦПУ в режим STANDBY и обратно; Ось не позволит тебе непосредственно остановить процессор. Это можно сделать только в рамках перевода компа в режим энергосбережения: SUSPEND (но, не HIBIRNATE). Об обратной процедуре я скажу позже. - остановка/запуск жестких дисков(так как это делает системный "гаситель") IMHO, это можно сделать только в рамках перевода компа в режим энергосбережения: SUSPEND или HIBIRNATE. Об обратной процедуре я скажу позже. - отключение/включение музыки. IMHO, для этого тебе нужно юзать микшер... Я с ним не работал, поэтому больше ничего сказать не могу. Как вывести комп из режима энергосбережения я точно не знаю. Но подозреваю, что в этом может помочь таймер установленный функцией: SetWaitableTimer (во всяком случае, для режима: SUSPEND). Учти также то, что если программа пишется под платформу: Windows 2000+, то для того чтобы иметь возможность перевести комп в какой-либо энергосберегающий режим, твоя прога должна получить для этого соответствующие привилегии... О привилегиях можно узнать из статей на сайте www.rsdn.ru . Так-же, я думаю, тебе будет полезно почитать спецификацию концепции: OnNow. Где ее можно найти я не помню, так что ищи сам... В этой доке подробно описаны все режимы энергосбережения. |
|
|
Дата: Май 10, 2004 17:42:26 |
|
|
Дата: Май 11, 2004 14:25:06 Oleg_SK ".. переводит процессор в состояние останова, из которого его может вывести только аппаратное прерывание или перезагрузка... Команда выполняется только в реальном режиме или с CPL=0." Зубков С.В. "Ассемблер для Дос, WIndows и Unix" HAL!HalProcessorIdle А кто тебе про UserMode тут говорил интересно ??? Получишь свой заслуженный #GP |
|
|
Дата: Май 11, 2004 14:52:02 Спасибо, пошел писать.... :) |
|
|
Дата: Май 11, 2004 18:05:37 CARDINAL А кто тебе про UserMode тут говорил интересно ??? В вопросе вообще нет информации о том, в каком кольце защиты (user-mode or kernel-mode) нужно выполнить требуемые действия. Я предположил, что это user-mode... |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.089 |