VB.NET实现关机和重新启动2009-10-0877169BLOGPrivate Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Integer, ByVal dwReserved As Integer) As IntegerConst EWX_FORCE As Short = 4Const EWX_LOGOFF As Short = 0Const EWX_REBOOT As Short = 2Const EWX_SHUTDOWN As Short = 1Dim retval As Integer"" 定义Esc按键Const VK_ESCAPE As Short = &H1BsPrivate Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.ClickIf Option1.Checked Then"" 注销当前用户retval = ExitWindowsEx(EWX_FORCE, 0)ElseIf Option2.Checked Then"" 关闭计算机retval = ExitWindowsEx(EWX_SHUTDOWN, 0)ElseIf Option3.Checked Then"" 重新启动retval = ExitWindowsEx(EWX_REBOOT, 0)End IfEnd SubPrivate Sub Command2_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command2.ClickMe.Close()End Sub"" 按Esc键时,结束应用程序Private Sub Form1_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPressDim KeyAscii As Short = Asc(eventArgs.KeyChar)If KeyAscii = VK_ESCAPE ThenMe.Close()End IfIf KeyAscii = 0 TheneventArgs.Handled = TrueEnd IfEnd Sub本实例通过使用ExitWindowEx()API函数来达到关机和重新启动的目的。在ExitWindowEx()函数中,参数uFlags指定要进行何种操作。在表86-2中列出了参数uFlags的值及其说明。表86-2 参数uFlags的值及说明常量名值说明EWX_FORCE4终止所有进程,包括没有响应的进程,并注销WindowsEWX_REBOOT2重新启动系统EWX_SHUTDOWN1关闭系统EWX_LOGOFF0终止所有正在运行的进程,并注销Windows