Завершение работы системы.
От: Sarit  
Дата: 15.12.05 10:08
Оценка:
Уважаемые коллеги, имеется один вопрос. Существует ли на сегодняшний день хоть какой нибудь способ определить, что именно делает система — перезагружается или выключается полностью. Microsoft почему то не дадумалась добавить в WM_QUERYENDSESSION какую нибудь информацию по этому поводу.
Заранее благодарен.

15.12.05 13:31: Перенесено из 'C/C++'
Re: Завершение работы системы.
От: Нахлобуч Великобритания https://hglabhq.com
Дата: 15.12.05 10:13
Оценка:
Здравствуйте, 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
Re[2]: Завершение работы системы.
От: Sarit  
Дата: 15.12.05 10:20
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Можно узнать, логоффится пользователь или выключает тазик. В первом случае lParam | ENDSESSION_LOGOFF != 0, во втором — lParam == 0.


Это понятно, вопрос однако в том, чтобы узнать будет выключение или перезагрузка, так как в одном случае надо выполнять действие, а во втором нет.
Re[3]: Завершение работы системы.
От: Нахлобуч Великобритания https://hglabhq.com
Дата: 15.12.05 10:37
Оценка:
Здравствуйте, Sarit, Вы писали:

S>Это понятно, вопрос однако в том, чтобы узнать будет выключение или перезагрузка, так как в одном случае надо выполнять действие, а во втором нет.


Даже не знаю. Есть еще WTSRegisterSessionNotification, но от нее тоже мало чего можно добиться. Все. Я иссяк =)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
HgLab: Mercurial Server and Repository Management for Windows
Re: Завершение работы системы.
От: Pavel Dvorkin Россия  
Дата: 15.12.05 12:00
Оценка:
Здравствуйте, Sarit, Вы писали:

S>Уважаемые коллеги, имеется один вопрос. Существует ли на сегодняшний день хоть какой нибудь способ определить, что именно делает система — перезагружается или выключается полностью. Microsoft почему то не дадумалась добавить в WM_QUERYENDSESSION какую нибудь информацию по этому поводу.

S>Заранее благодарен.

Winlogon Notification Packages

ms-help://MS.MSDNQTR.2005APR.1033/secauthn/security/winlogon_notification_packages.htm
With best regards
Pavel Dvorkin
Re[2]: Завершение работы системы.
От: Аноним  
Дата: 15.12.05 12:09
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

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


PD>Winlogon Notification Packages


PD>ms-help://MS.MSDNQTR.2005APR.1033/secauthn/security/winlogon_notification_packages.htm


Спасибо, только вот одна есть проблема, апп должно работать под W98/Me/NT...и так далее.
Re[2]: Завершение работы системы.
От: SeLarin Россия http://selarin.livejournal.com
Дата: 15.12.05 12:15
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Winlogon Notification Packages


PD>ms-help://MS.MSDNQTR.2005APR.1033/secauthn/security/winlogon_notification_packages.htm


Что-то линк не открылся

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthn/security/winlogon_notification_packages.asp


Во всем нужна мера, даже в том, чтобы соблюдать ее.
Re[3]: ответ отрицательный ...
От: ndemia Россия http://ndemia.com
Дата: 24.12.05 01:19
Оценка:
Здравствуйте, 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...
Re[3]: Завершение работы системы.
От: CreatorCray  
Дата: 24.12.05 09:37
Оценка:
Здравствуйте, Sarit, Вы писали:

S>Здравствуйте, Нахлобуч, Вы писали:


Н>>Можно узнать, логоффится пользователь или выключает тазик. В первом случае lParam | ENDSESSION_LOGOFF != 0, во втором — lParam == 0.


S>Это понятно, вопрос однако в том, чтобы узнать будет выключение или перезагрузка, так как в одном случае надо выполнять действие, а во втором нет.


Вообще лучше всегда действовать как при выключении — потому как ничто не мешает пользователю выключить комп во время перезагрузки. Если выполнение неких действий критично — то лучше ИМХО перестраховываться. Перезагружаться можно и под другую ОС, что для первой ОС будет аналогично выключению на некоторое время. Лучше уж рассматривать перезагрузку как выключение компа на короткое время.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.