Re: Не дать уйти в ждущий / спящий режим
От: Pzz Россия https://github.com/alexpevzner
Дата: 29.08.10 22:17
Оценка: +3
Здравствуйте, wonderboy, Вы писали:

W>Программка занимается вычислениями. Подскажите пожалуйста как ей не дать ОС отправить комп в ждущий / спящий режим? Как-то это тот же медиаплеер ведь делает.


Убивал бы, кстати, авторов таких программок. Включая автора медиаплеера.
Re[5]: Не дать уйти в ждущий / спящий режим
От: Pzz Россия https://github.com/alexpevzner
Дата: 30.08.10 11:04
Оценка: 1 (1) +1
Здравствуйте, wonderboy, Вы писали:

W>Предположим винда автоматически после 30 мин бездействия юзера уводит комп в ждущий режим или в гибернейт. Смотрите вы кино, клаву/мышу не трогаете — и на тебе, через пол часа кино завершается.


Если в венде возможно прочитать эти настройки, я бы их прочитал, и выкинул пользователю предупреждение. Возможно с предложением поставить галку, запрещающую сон. Но навязывать такую "услугу" — дурной тон.
Re: Не дать уйти в ждущий / спящий режим
От: _stun_ Россия  
Дата: 29.08.10 19:53
Оценка: 3 (1)
Здравствуйте, wonderboy, Вы писали:

W>Приветствую!


W>Программка занимается вычислениями. Подскажите пожалуйста как ей не дать ОС отправить комп в ждущий / спящий режим? Как-то это тот же медиаплеер ведь делает.


Почитать про SetThreadExecutionState
Re: Не дать уйти в ждущий / спящий режим
От: Pavel Dvorkin Россия  
Дата: 30.08.10 09:12
Оценка: 2 (1)
Здравствуйте, wonderboy, Вы писали:

W>Приветствую!


W>Программка занимается вычислениями. Подскажите пожалуйста как ей не дать ОС отправить комп в ждущий / спящий режим? Как-то это тот же медиаплеер ведь делает.


SetThreadExecutionState Function

Enables applications to inform the system that it is in use, thereby preventing the system from entering the sleeping power state or turning off the display while the application is running.

2Pzz — ничего криминального я в этом вызове не вижу. Просто надо применять его там, где надо и не применять — где не надо.
With best regards
Pavel Dvorkin
Re[3]: Не дать уйти в ждущий / спящий режим
От: K13 http://akvis.com
Дата: 30.08.10 05:43
Оценка: +1
Pzz>>Убивал бы, кстати, авторов таких программок. Включая автора медиаплеера.
W>А в чем проблема?

Если я отправляю ноут/комп в гибернейт, то это нужно сделать прямо сейчас.
любой софт, мешающий этому -- будет снесен.

возможно, заглянул электрик и сказал "через 5 минут отключаем этаж часа на 2-3".
возможно, пропал свет и упс дает команду на гибернейт.

нахрена блокировать? и в чем плюсы от блокировки? проснется -- продолжит.
Re[2]: Не дать уйти в ждущий / спящий режим
От: Pzz Россия https://github.com/alexpevzner
Дата: 30.08.10 11:09
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>SetThreadExecutionState Function


Ну кстати, ES_USER_PRESENT вроде как отменяет всякие там скринсейверы и прочие понижения частоты процессора но при этом, если верить описанию (я бы проверил), не мешает усыплению компутера, если юзер это явно попросил (путем закрытия крышки, например)
Не дать уйти в ждущий / спящий режим
От: wonderboy  
Дата: 29.08.10 19:18
Оценка:
Приветствую!

Программка занимается вычислениями. Подскажите пожалуйста как ей не дать ОС отправить комп в ждущий / спящий режим? Как-то это тот же медиаплеер ведь делает.
Re[2]: Не дать уйти в ждущий / спящий режим
От: wonderboy  
Дата: 30.08.10 04:26
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, wonderboy, Вы писали:


W>>Программка занимается вычислениями. Подскажите пожалуйста как ей не дать ОС отправить комп в ждущий / спящий режим? Как-то это тот же медиаплеер ведь делает.


Pzz>Убивал бы, кстати, авторов таких программок. Включая автора медиаплеера.


А в чем проблема?
Re[4]: Не дать уйти в ждущий / спящий режим
От: wonderboy  
Дата: 30.08.10 06:06
Оценка:
Здравствуйте, K13, Вы писали:

W>>А в чем проблема?

K13>возможно, заглянул электрик и сказал "через 5 минут отключаем этаж часа на 2-3".
K13>возможно, пропал свет и упс дает команду на гибернейт.
K13>нахрена блокировать? и в чем плюсы от блокировки? проснется -- продолжит.

Возможно меня не правильно поняли.
Предположим винда автоматически после 30 мин бездействия юзера уводит комп в ждущий режим или в гибернейт. Смотрите вы кино, клаву/мышу не трогаете — и на тебе, через пол часа кино завершается.
То же самое в моем случае — когда расчет я запустил, то не хотел бы чтобы его принудительно остановили, тем более что в это время используются сетевые соединения, которые я так полагаю порвутся (программа распределенные вычисления организует). Можно конечно вручную настройку ухода в ждущий/спящий режим менять, но не будешь же это делать перед каждым запуском..
Re: Не дать уйти в ждущий / спящий режим
От: Аноним  
Дата: 30.08.10 06:58
Оценка:
Периодически (по таймеру, или еще как-нибудь) генерируй безобидное событие клавиатуры
keybd_event(VK_F24, 0, KEYEVENTF_KEYUP | KEYEVENTF_SILENT, 0);
Re[3]: Не дать уйти в ждущий / спящий режим
От: Pzz Россия https://github.com/alexpevzner
Дата: 30.08.10 08:27
Оценка:
Здравствуйте, wonderboy, Вы писали:

Pzz>>Убивал бы, кстати, авторов таких программок. Включая автора медиаплеера.


W>А в чем проблема?


В том, что закрываешь крышку нотебука, а он не засыпает, скотина.
Re[2]: Не дать уйти в ждущий / спящий режим
От: ononim  
Дата: 30.08.10 09:18
Оценка:
А>Периодически (по таймеру, или еще как-нибудь) генерируй безобидное событие клавиатуры
А>keybd_event(VK_F24, 0, KEYEVENTF_KEYUP | KEYEVENTF_SILENT, 0);
А потом у юзера периодически будут "пропадать" нажатые клавиши.
А если это будет какой нибудь неуравновешенный любитель стрелялок, то он ведь и найти вас может, если поймет в чем дело
Как много веселых ребят, и все делают велосипед...
Re[2]: Не дать уйти в ждущий / спящий режим
От: Pzz Россия https://github.com/alexpevzner
Дата: 30.08.10 10:34
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>2Pzz — ничего криминального я в этом вызове не вижу. Просто надо применять его там, где надо и не применять — где не надо.


Я могу отнестись с некоторым пониманием к тому, что программа, которая пишет на DVD-болванку, не дает системе заснуть, пока не допишет. Но когда рассчетная программа или кено не дают заснуть лабтопу, у которого закрыли крышку, таких программеров надо отстреливать пока они еще маленькие и не доросли до начальской должности. Да-да, я знаю, венда мне скажет, почему она не может заснуть. Прямо под закрытой крышкой нарисует окошко и туда все скажет
Re[3]: Не дать уйти в ждущий / спящий режим
От: Pavel Dvorkin Россия  
Дата: 30.08.10 10:48
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Я могу отнестись с некоторым пониманием к тому, что программа, которая пишет на DVD-болванку, не дает системе заснуть, пока не допишет. Но когда рассчетная программа или кено не дают заснуть лабтопу, у которого закрыли крышку, таких программеров надо отстреливать пока они еще маленькие и не доросли до начальской должности. Да-да, я знаю, венда мне скажет, почему она не может заснуть. Прямо под закрытой крышкой нарисует окошко и туда все скажет


А чуть поспокойнее можно ?

Во-первых, при чем тут лаптоп ? Не помню, чтобы ТС его упомянул. Кстати, если уж на то пошло, можно, наверное, проверить, лаптоп или нет (как именно — не знаю, не интересовался)
Во-вторых, если я запускаю именно рассчетную программу, которой (я это знаю) считать надо 5 часов, то почему бы мне и не отключить на это время способность системы засыпать ? Между прочим, эта способность у нее не сразу появилась — не помню, начиная с какой версии Windows.
А в третьих, если уж на то пошло, то эта программа может вывести при старте сообщение, о том, что она собирается делать. На понятном юзеру языке. С возможностью не показывать это сообщение в следующий раз. А дальше будет как при установке апдейтов Windows — просим не отключать компьютер (и не закрывать крышку
With best regards
Pavel Dvorkin
Re[3]: Не дать уйти в ждущий / спящий режим
От: Pavel Dvorkin Россия  
Дата: 30.08.10 11:22
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Ну кстати, ES_USER_PRESENT вроде как отменяет всякие там скринсейверы и прочие понижения частоты процессора но при этом, если верить описанию (я бы проверил), не мешает усыплению компутера, если юзер это явно попросил (путем закрытия крышки, например)


Так ТС же надо наоборот, не усыплять, без участия юзера.
With best regards
Pavel Dvorkin
Re[4]: Не дать уйти в ждущий / спящий режим
От: Pzz Россия https://github.com/alexpevzner
Дата: 30.08.10 11:29
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

Pzz>>Ну кстати, ES_USER_PRESENT вроде как отменяет всякие там скринсейверы и прочие понижения частоты процессора но при этом, если верить описанию (я бы проверил), не мешает усыплению компутера, если юзер это явно попросил (путем закрытия крышки, например)


PD>Так ТС же надо наоборот, не усыплять, без участия юзера.


Ну? По описанию получается то, что надо: само собой усыпляться не будет, а по явному запросу таки будет.

Не надо отламывать у пользователя возможность сделать какое-то действие явно, даже если оно кажется автору программы глупым: существует ненулевая вероятность, что автор программы глупее юзера.
Re[6]: Не дать уйти в ждущий / спящий режим
От: wonderboy  
Дата: 30.08.10 11:32
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, wonderboy, Вы писали:


W>>Предположим винда автоматически после 30 мин бездействия юзера уводит комп в ждущий режим или в гибернейт. Смотрите вы кино, клаву/мышу не трогаете — и на тебе, через пол часа кино завершается.

Pzz>Если в венде возможно прочитать эти настройки, я бы их прочитал, и выкинул пользователю предупреждение. Возможно с предложением поставить галку, запрещающую сон. Но навязывать такую "услугу" — дурной тон.

С вами согласен.
Но я не думаю что вызов SetThreadExecutionState с ES_SYSTEM_REQUIRED | ES_CONTINUOUS запретит напроч уход в спящий режим, если этого юзер сам попросит. По описанию я так понял, что работа функции касается только автоматического ухода в спящий режим после периода "неактивности" пользователя. Сегодня проверю..
Re[5]: Не дать уйти в ждущий / спящий режим
От: Pavel Dvorkin Россия  
Дата: 30.08.10 11:40
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, Pavel Dvorkin, Вы писали:


Pzz>>>Ну кстати, ES_USER_PRESENT вроде как отменяет всякие там скринсейверы и прочие понижения частоты процессора но при этом, если верить описанию (я бы проверил), не мешает усыплению компутера, если юзер это явно попросил (путем закрытия крышки, например)


PD>>Так ТС же надо наоборот, не усыплять, без участия юзера.


Pzz>Ну? По описанию получается то, что надо: само собой усыпляться не будет, а по явному запросу таки будет.


Похоже, вообще не будет.

ES_USER_PRESENT
0x00000004 This value is not supported. If ES_USER_PRESENT is combined with other esFlags values, the call will fail and none of the specified states will be set.

Windows Server 2003 and Windows XP/2000: Informs the system that a user is present and resets the display and system idle timers. ES_USER_PRESENT must be called with ES_CONTINUOUS.

Кстати , в локальном MSDN от VS2008 его нет вообще.

Pzz>Не надо отламывать у пользователя возможность сделать какое-то действие явно, даже если оно кажется автору программы глупым: существует ненулевая вероятность, что автор программы глупее юзера.


With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.