С Новым годом! Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/32: Рейтинг темы: голосов - 32, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 59

Управление энергосбережением (Power Management)

05.12.2011, 21:17. Показов 6154. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите как сделать так,чтобы система не переходила в спящий режим пока работает поток! заранее спасибо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.12.2011, 21:17
Ответы с готовыми решениями:

Управление энергосбережением (Power Management)
Разработка программы для управления операционной системой: Управление энергосбережением (Power Management). Я так понимаю это нужно...

Где в Ами-биосе найти Power management?
Подскажите где в Ами-биосе найти Power management? Мать AsRock P43DE Нужен пункт Aspi Suspend Type S3 Нужно чтоб кулеры отключались в...

Управление приложением с кнопки power на LCD мониторе
Прошу прощения, но пока не знаю куда писать. Есть ли возможность сделать так чтобы при выключении монитора с кнопки Power на лицевой...

34
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
05.12.2011, 21:29
kate_miss, вам это программно надо?
1
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 59
05.12.2011, 21:46  [ТС]
да

Добавлено через 16 минут
подскажите как реализовать WM_POWERBROADCAST PBT_APMQUERYSUSPEND BROADCAST_QUERY_DENY
0
Исследователь
 Аватар для GrayWolf
318 / 317 / 24
Регистрация: 06.04.2011
Сообщений: 872
06.12.2011, 07:44
SetThreadExecutionState? У меня она, правда, не сработала. Но у меня это было из-за батареи ноутбука.
1
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 59
12.12.2011, 16:08  [ТС]
ПОЖАЛУЙСТА, помогите с программой
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
16.12.2011, 07:55
Цитата Сообщение от kate_miss Посмотреть сообщение
да

Добавлено через 16 минут
подскажите как реализовать WM_POWERBROADCAST PBT_APMQUERYSUSPEND BROADCAST_QUERY_DENY
ловите WM_POWERBROADCAST.
и дальше проверяете:
C++
1
2
3
4
5
6
7
8
9
10
   // See if bit 1 is set, this means that you can send a deny while we are busy
   if (message.LParam & 0x1)
   {
      // send the deny message
      return BROADCAST_QUERY_DENY;
   } // if
   else
   {
      return TRUE;
   } // else
под Vista+ лучше(нужно?) использовать SetThreadExecutionState
C++
1
2
3
4
5
6
// try this for vista, it will fail on XP
if (SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_AWAYMODE_REQUIRED) == NULL)
{
   // try XP variant as well just to make sure 
   SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED);
}  // if
взято отсюда http://stackoverflow.com/quest... is-running
1
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 59
19.12.2011, 14:33  [ТС]
Цитата Сообщение от turbanoff Посмотреть сообщение
ловите WM_POWERBROADCAST.
что это значит не подскажите,вернее как его ловитть???
0
32 / 32 / 4
Регистрация: 19.12.2011
Сообщений: 72
21.12.2011, 08:28
Цитата Сообщение от kate_miss Посмотреть сообщение
что это значит не подскажите,вернее как его ловитть???
Это сообщение окну. Надо прописать его обработку туда, где цикл с функцией GetMessage().
1
Исследователь
 Аватар для GrayWolf
318 / 317 / 24
Регистрация: 06.04.2011
Сообщений: 872
21.12.2011, 11:04
kate_miss,
Цитата Сообщение от kisssko Посмотреть сообщение
Надо прописать его обработку туда, где цикл с функцией GetMessage().
Иначе говоря, в функции WindowProc().
1
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 59
26.12.2011, 23:59  [ТС]
пожалуйста помогите написать программу
0
32 / 32 / 4
Регистрация: 19.12.2011
Сообщений: 72
28.12.2011, 06:49
А как она должна работать?
0
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 59
29.12.2011, 18:22  [ТС]
принцип-----работает поток(думаю любой), как только его работа заканчивается компьютер переходит в спящий режим
0
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 59
10.01.2012, 23:00  [ТС]
помогите горююююююю.......
0
375 / 322 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
11.01.2012, 15:52

Не по теме:

Звоните в МЧС. Будут тушить.


SetThreadExecutionState

Добавлено через 6 минут
Так вам уже подсказали. Я как то сразу на вторую страницу перешел, не прочитал всю тему.
Так в чем проблема?
1
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 59
11.01.2012, 16:01  [ТС]
Цитата Сообщение от bigredcat Посмотреть сообщение

Не по теме:

Звоните в МЧС. Будут тушить.


SetThreadExecutionState

за это в отдельности
0
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 59
19.01.2012, 02:04  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include "stdafx.h"
#include <windows.h>
#include <stdlib.h>
 
int WINAPI WinMain(HINSTANCE hInst,HINSTANCE,LPSTR cmdline,int ss) 
{
 MSG msg;
 while (GetMessage(&msg,(HWND)NULL,0,0)) {
  TranslateMessage(&msg); 
  DispatchMessage(&msg); 
 } 
 return msg.wParam; 
}
 
LRESULT CALLBACK MainWinProc(HWND hw,UINT msg,WPARAM wp,LPARAM lp) 
{
 switch (msg) 
{
  case WM_CREATE:
   return 0;
  case WM_COMMAND:
 return 0;
  case WM_DESTROY:
   PostQuitMessage(0);
   return 0;
 }
 return DefWindowProc(hw,msg,wp,lp);
}
 
int main (){}.
помогите...немного поняла что должно быть в программе не пойму где мне сейчас отлеживать WM_POWERBROADCAST? и куда писать цикл if

C++
1
2
3
4
5
6
7
8
9
if (message.LParam & 0x1)
   {
      // send the deny message
      return BROADCAST_QUERY_DENY;
   } // if
   else
   {
      return TRUE;
   } // else
- вот это куда записать MainWinProc???.....

и где должно быть GetMessage() и надо ли оно вообще???

в что тогда в main-е делать??? или вообще быть не должно???

что-то совсем запуталась..и не нашла где конкретно написано((((((((((


И ЕЩЕ Очень важный для меня вопрос...если это консольное приложение, надо ли использовать функции связанные с окнами???
0
32 / 32 / 4
Регистрация: 19.12.2011
Сообщений: 72
19.01.2012, 04:39
Вот как то так должно быть.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
LRESULT CALLBACK MainWinProc(HWND hw,UINT msg,WPARAM wp,LPARAM lp) 
{
 switch (msg) 
{
  case WM_CREATE:
   return TRUE;
  case WM_COMMAND:
   return FALSE;
  case WM_POWERBROADCAST:
   return BROADCAST_QUERY_DENY;
  case WM_DESTROY:
   PostQuitMessage(0);
   return TRUE;
  default: 
   return DefWindowProc(hw,msg,wp,lp);
 }
}
Цикл с ловлей сообщений немножко не так надо.

C
1
2
3
4
5
6
 MSG msg;
 while (GetMessage(&msg,NULL,0,0)>0) {
  TranslateMessage(&msg); 
  DispatchMessage(&msg); 
 } 
 return msg.wParam;
А зачем сразу 2 входные функции, WinMain и main?

Цитата Сообщение от kate_miss Посмотреть сообщение
И ЕЩЕ Очень важный для меня вопрос...если это консольное приложение, надо ли использовать функции связанные с окнами???
Можно создать спец-окно только для сообщений. Оно не будет отображаться.
Message-Only Windows

A message-only window enables you to send and receive messages. It is not visible, has no z-order, cannot be enumerated, and does not receive broadcast messages. The window simply dispatches messages.

To create a message-only window, specify the HWND_MESSAGE constant or a handle to an existing message-only window in the hWndParent parameter of the CreateWindowEx function. You can also change an existing window to a message-only window by specifying HWND_MESSAGE in the hWndNewParent parameter of the SetParent function.

To find message-only windows, specify HWND_MESSAGE in the hwndParent parameter of the FindWindowEx function. In addition, FindWindowEx searches message-only windows as well as top-level windows if both the hwndParent and hwndChildAfter parameters are NULL.
1
375 / 322 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
19.01.2012, 05:09
Цитата Сообщение от kisssko Посмотреть сообщение
Цикл с ловлей сообщений немножко не так надо.
Ну, с учетом того, что GetMessage в случае ошибки возвращает -1, то нужно так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
BOOL bRet;
while((bRet = GetMessage(&msg, hWnd, 0, 0)))
{
    if (bRet == -1)
    {
        // ОШИБКА
    }
    else
    {
        TranslateMessage(&msg); 
        DispatchMessage(&msg); 
    }
}
1
32 / 32 / 4
Регистрация: 19.12.2011
Сообщений: 72
19.01.2012, 06:52
Цитата Сообщение от bigredcat Посмотреть сообщение
Ну, с учетом того, что GetMessage в случае ошибки возвращает -1, то нужно так:
Угу. Но ТС врядли будет заморачиваться с этим. Поэтому тут будет лучше, что приложение тихо схлопнется в случае ошибки.
1
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 59
19.01.2012, 08:32  [ТС]
В итоге получается вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "stdafx.h"
#include <windows.h>
#include <stdlib.h>
 
int WINAPI WinMain(HINSTANCE hInst,HINSTANCE,LPSTR cmdline,int ss) 
{
  MSG msg;
 while (GetMessage(&msg,NULL,0,0)>0) {
  TranslateMessage(&msg); 
  DispatchMessage(&msg); 
 } 
 return msg.wParam;
}
 
LRESULT CALLBACK MainWinProc(HWND hw,UINT msg,WPARAM wp,LPARAM lp) 
{
 switch (msg) 
{
  case WM_CREATE:
   return TRUE;
  case WM_COMMAND:
   return FALSE;
  case WM_POWERBROADCAST:
   return BROADCAST_QUERY_DENY;
  case WM_DESTROY:
   PostQuitMessage(0);
   return TRUE;
  default: 
   return DefWindowProc(hw,msg,wp,lp);
 }
}
но это только 2 функции одна ловит сообщение --другая обрабатывает????

а куда вот это---
C++
1
2
3
4
5
6
7
8
9
if (message.LParam & 0x1)
   {
      // send the deny message
      return BROADCAST_QUERY_DENY;
   } // if
   else
   {
      return TRUE;
   } // else

И еще вопрос!!!! Задача поставлена так----- пока работает поток, программа не должна перейти в спящий режим-----тогда надо ли создавать рабочий поток??? или программа будет видеть какие-то другие потоки на компе???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.01.2012, 08:32
Помогаю со студенческими работами здесь

Как подключить HDD Led, Power Led+, Power Led -, Power sw, reset sw на мат. плате ga-b75-d3v rev.1
Весь вопрос в теме.

Подключение Power SW, HDD LED, Reset SW, Power Led+, Power LED- на материнке Foxconn
Доброго времени суток. Вот в чем проблема, уже день пытаюсь найти мануал или хоть что нибудь, что бы подключить Power SW, HDD LED, Reset...

Подключение кабелей Power SW, HDD LED, Reset SW, Power Led+, Power LED-
Доброго времени суток. Вот в чем проблема, уже день пытаюсь найти мануал или хоть что нибудь, что бы подключить Power SW, HDD LED, Reset...

Excel и Power Query подгрузка картинок и отображение в Power View
Добрый день. Осваиваю Power Query, Power Pivot и Power View в эксель (2016 версия). Пробую подгрузить данные, как по данному...

Power consumption(Gpu power tdp) 75-80% норма ли это?
Здравствуйте ,столкнулся со следующей странностью.Недавно приобрел себе новую видеокарту gtx 1060 6gb и решил ее проверить в Furmark и OCCT...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru