Хотелось бы рассказать еще про один способ завершения работы компьютера.
Изначально хотел написать про API функцию ExitWindowsEx, но нашел более адекватный вариант с помощью WMI.
Windows Management Instrumentation (WMI) в дословном переводе — это инструментарий управления Windows. Если говорить более развернутo, то WMI — это одна из базовых технологий для централизованного управления и слежения за работой различных частей компьютерной инфраструктуры под управлением платформы Windows. https://ru.wikipedia.org/wiki/WMI
Первое, что мы сделаем, это добавим ссылку на System.Management, для этого нажимаем Проект->Добавить ссылку
LetShut.dll — это .NET библиотека для завершения работы компьютера, написанная AeroWhite.
Возможности библиотеки:
Выключение
Перезагрузка
Блокировка
Работает с .NET Framework 2 и выше.
Код VB.NET
Imports LetShut
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
SAction.Lock() ' Блокировка
SAction.Reboot(True) ' Перезагрузка
SAction.Shutdown(True) ' Выключение
End Sub
End Class