Доброго всем. Вот тут стало интересно, а как можно комп в состояние энерго сбережения ввести? Вот тут надыбал на винте прогу, а она говорит типа Sleep тебе не доступен. А я помню была у меня другая тулза которая по нажатию Pause, таки вводила комп в ступор. Вот собсно и все. Спасибо за внимание
Используя сообщение WM_SYSCOMMAND можно перевести монитор в режим экономии питания wParam=SC_MONITORPOWER или запустить screensaver SC_SCREENSAVE.
Нет, веня не правильно поняли. Нужно перевисти комп в спящие состояние. А монитор это монитор. Нужно чтоб все "отключилось". Типа как на буках когда крышку прикрываешь.
SammIk Так просто в Винде у тебя какие режиме. Простой энергосберегающий режим - это спит дисплей и выключен диск. Теперь еще добавили hybernate, но с ним куча проблем. 2) Никогда не слышал, что крышкой бук усыпляют. Там система сама гасит дисплей и останавливает диск, обычно через 5-10 минут по умолчанию. Ты наверное говоришь про hybernate, но это все хорошо, пока у тебя там все проги от Микрософта и железки хорошие.
IMHO тут проблема с терминологией - sleep - это по русски "ждущий режим", а hibernate - "спящий режим". Что бы последний мог работать, его нужно активировать в панели управления -> электропитание.
Ясно, а если этого в питание нет? То следовательно комп не поддерживает? --- 2valterg Гасятся, там есть кнопочка каторая при закрытии крышки нажимается. А система делает предписаные действия. --- Жаль, что компутер мой не поддерживает этого( А всетаки как это сделать? И слип и хибернат?
Ясно, а если этого в питание нет? То следовательно комп не поддерживает? --- 2valterg Гасятся, там есть кнопочка каторая при закрытии крышки нажимается. А система делает предписаные действия. --- Жаль, что компутер мой не поддерживает этого( А всетаки как это сделать? И слип и хибернат?
SammIk Посмотри SetSystemPowerState. Мне ее проверить не удалось - винда глючит и в слип и хибернат не хочет уходить. Точнее, уходит всегда в слип, но оттуда не возвращается. Т.к. эта функция делает то же самое, есть мнение, что она и отвечает за суспенд. Но для ее использования нужна привилегия "SeShutDownPrivilege". Есть у меня прога для вырубания компа по-всякому, но сорцы не оформлены. Оформлю - могу дать.
Не комп, а ОС. Во-первых, в БИОС-е должно быть включено что-то, типа расширенное управление питанием. После этого появятся закладки. Но hybernate может все равно не включится : надо чтобы все железки и драйвера его поддерживали. У меня на ХП hybernate работал до тех пор, пока не подрубил TV-tuner. И вообще, какой у тебя комп : для hybernate нужен корпус под П-4, на старых этого просто не было. На буке что-то обязательно должно быть - короче уточни задачу-то.
Что бы заработало hibernate нужно: - включить в БИОСе поддержку ACPI - в виндосе (начиная с 98) заменить драйвер "Plug and Pray BIOS" на "Интерфейс автоматического управления конфигурацией и питанием ACPI BIOS" В 2K и XP названия там немного другие, но микрософт так делать не рекомендует - при включении ACPI в BIOS переназначаются прерывания и система может просто не загрузиться.
Ну если комп не старый, то должен поддерживать. Раньше юзал этот спящий режим, прикольно было выключаться не закрывая фильмы, музыку, браузеры, а потом продолжать. Но как поставил сеть, то после спячки теряется связь, поэтому последнее время экономлю 512 мбайт.
hibernate использовал даже на 486 - к источнику питания отношения не имеет, однако нужно "поклацать" в настройках питания, чтобы появилась возможность использования спящего режима, сейчас точно не помню детали, важно нажимать "Применить", так как нужных опций сначала вообще не было видно (поэтому я их сразу тогда и не нашел , потом его разрешить. на системном диске должно быть достаточно места для создания файла hibernate.sys=объем памяти. но это - не ждущий режим - для него материнка должна поддерживать расширенное управление питанием, и оно должно быть разрешено в биосе. у меня старый корпус, ИП сначала был АТ, а когда он сдох, я поставил АТХ и включал в биосе все функции. помотрю дома настройки биоса - завтра напишу (на работе у меня мать подпаленая - АТХ тумблером включаю
Ну вот, причесал сырцы, так что по просьбам трудящихся выкладываю. Писано на фасме с использованием двух макросов: library и import. Коментированы сырцы обильно, должно быть понятно. Прога консольная, при запуске без параметров выводит справку по использованию. 95215914__power.RAR
n0p > i'll try to compress it stronger Вместо Код (Text): and ecx,0FFFFh использовать можно Код (Text): movzx ecx, cx меньше в 2 раза . Потом Код (Text): shl ecx,2 ; ordinal * 4 add edx,ecx ; get address of api RVA поменьть можно на Код (Text): lea edx, [edx+ecx*4] Тут IMHO будет 255 в cl. Код (Text): mov ax,0FF2Dh ; ah = 15, al = '-' movzx ecx,ah ; cl = 15, other bytes = 0 Потом можно cx использовать здесь вместо ecx: Код (Text): mov ecx,'sh' ; possible suspend params Ещё можно же в стэке память выделять под TOKEN_PRIVILEGES Не знаю правда, будет ли код после всего этого работать - запускать опасно, вдруг сработает и выключит комп, и тогда этот текст пропадёт . Кстити, где-то видел, что хэши от имён API вычисляет fasm прямо в момент компиляции.
S_T_A_S_ Да, упустил. Не то коментс не поправил, не то код В стеке структуру положить не получилось - AdjustTokenPrivilege не смогла ее обработать и вернула ошибку
Всем спасибо, ноп'у за сырец. Седня гляну,че как. -- А комп у меня старый, многога(бл*) не потдерживает походу и расширеного управления питанием))) Просто была интересна тема. Вообщем спасиба.
привет! пардон за задержку - обещался в биус глянуть вобщем, ACPI function - Enabled, Doze Mode - Disabled, Suspend Mode - Disabled. на старой машине у меня были возможности энергосбережения, но если включать в биосе - то ложилась сеть и время в винде останавливалось (потом, правда, подхватывалось, но все равно - неприятно). а с винды - никак - нужен драйвер, а где его было взять для мамки сокет 3 '94 года выпуска под вин 2000? а в новой машине можно и кнопку включения компа запрограммировать так как нужно (на выключение, ждущий или спящий режим) - наверное, это даже удобней. было дело был К6 - там были дрова под мать и кнопка suspend - нажимал - и вроде дремала нормально (деталей, правда, не помню)...