Уважаемые коллеги, имеется один вопрос. Существует ли на сегодняшний день хоть какой нибудь способ определить, что именно делает система — перезагружается или выключается полностью. Microsoft почему то не дадумалась добавить в WM_QUERYENDSESSION какую нибудь информацию по этому поводу.
Заранее благодарен.
Здравствуйте, Sarit, Вы писали:
S>Уважаемые коллеги, имеется один вопрос. Существует ли на сегодняшний день хоть какой нибудь способ определить, что именно делает система — перезагружается или выключается полностью. Microsoft почему то не дадумалась добавить в WM_QUERYENDSESSION какую нибудь информацию по этому поводу. S>Заранее благодарен.
Можно узнать, логоффится пользователь или выключает тазик. В первом случае lParam | ENDSESSION_LOGOFF != 0, во втором — lParam == 0.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
HgLab: Mercurial Server and Repository Management for Windows
Здравствуйте, Нахлобуч, Вы писали:
Н>Можно узнать, логоффится пользователь или выключает тазик. В первом случае lParam | ENDSESSION_LOGOFF != 0, во втором — lParam == 0.
Это понятно, вопрос однако в том, чтобы узнать будет выключение или перезагрузка, так как в одном случае надо выполнять действие, а во втором нет.
Здравствуйте, Sarit, Вы писали:
S>Это понятно, вопрос однако в том, чтобы узнать будет выключение или перезагрузка, так как в одном случае надо выполнять действие, а во втором нет.
Даже не знаю. Есть еще WTSRegisterSessionNotification, но от нее тоже мало чего можно добиться. Все. Я иссяк =)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
HgLab: Mercurial Server and Repository Management for Windows
Здравствуйте, Sarit, Вы писали:
S>Уважаемые коллеги, имеется один вопрос. Существует ли на сегодняшний день хоть какой нибудь способ определить, что именно делает система — перезагружается или выключается полностью. Microsoft почему то не дадумалась добавить в WM_QUERYENDSESSION какую нибудь информацию по этому поводу. S>Заранее благодарен.
Здравствуйте, Sarit, Вы писали:
S>Здравствуйте, Нахлобуч, Вы писали:
Н>>Можно узнать, логоффится пользователь или выключает тазик. В первом случае lParam | ENDSESSION_LOGOFF != 0, во втором — lParam == 0.
S>Это понятно, вопрос однако в том, чтобы узнать будет выключение или перезагрузка, так как в одном случае надо выполнять действие, а во втором нет.
В Platform SDK написано:
lParam
If this parameter includes ENDSESSION_LOGOFF, the user is logging off. (Note that this parameter is a bit mask. To test for this value, use a bit-wise operation; do not test for equality.)
If this parameter is zero, the system is shutting down or restarting (it is not possible to determine which event is occurring).
ну а через winlogon или там драйвер блока питания — это уже в обход основного API...
Здравствуйте, Sarit, Вы писали:
S>Здравствуйте, Нахлобуч, Вы писали:
Н>>Можно узнать, логоффится пользователь или выключает тазик. В первом случае lParam | ENDSESSION_LOGOFF != 0, во втором — lParam == 0.
S>Это понятно, вопрос однако в том, чтобы узнать будет выключение или перезагрузка, так как в одном случае надо выполнять действие, а во втором нет.
Вообще лучше всегда действовать как при выключении — потому как ничто не мешает пользователю выключить комп во время перезагрузки. Если выполнение неких действий критично — то лучше ИМХО перестраховываться. Перезагружаться можно и под другую ОС, что для первой ОС будет аналогично выключению на некоторое время. Лучше уж рассматривать перезагрузку как выключение компа на короткое время.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока