|
Как программно перезагрузить компьютерУ вас никогда не возникало необходимости вызвать команду перезагрузки компьютера из своей программы? Иногда это бывает необходимо, например, когда для внесения тех или иных изменений в систему обязательно нужно перезагрузиться. Вы должны выдать диалоговое окно содержанием: "Для внесения изменений в систему необходимо перезагрузиться. Произвести перезагрузку сейчас? (Да, Нет)". Это диалоговое окно стандартное, и я покажу как его вызвать, кроме того, существует ещё один способ отправить компьютер на перезагрузку, правда он работает только в Win2k. Но обо всём по порядку. Способ 1 (простой) Для вызова стандартного диалогового окна перезагрузки существует API функция RestartDialog. int RestartDialog( hParent - указатель на родительское окно Есть одна тонкость сообщения должно быть в строке в Unicode формате, т.е. на каждый символ 2 байта. Для перевода обычной строки в Unicode есть MFC макрос CA2W. Например можно вызвать перезагрузку системы из программы на С++. Следующий код пишем на клик какой-либо кнопки: LPCWSTR str; Способ 2 (навороченный) Способ работает только в Win2k. Здесь всё не так просто. Функция для перезагрузки: BOOL MySystemShutdown( LPTSTR lpMsg ) Основная суть здесь в том что, ваша программа перед вызовом InitiateSystemShutdown, должна получить соответствующие привилегии на отключение иначе ничего не получится. После вызова функции появится диалоговое окно, в котором будет выдано указанное сообщение. Начнётся отсчёт времени, после чего произойдёт перезагрузка. Пользователь не сможет отменить это действие и закрыть окно. Если указать время задержки 0 сек, то перезагрузка пойдёт сразу без всяких сообщений. Если кто знает ещё способы перезагрузки или выключения
компа, пишите мне. |
||||
|