微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

[VB.NET]实现关机和重新启动

实现关机和重新启动

实例说明

在本实例中,我们将制作一个能重新启动和关闭计算机的应用程序。程序运行后,弹出如图86-1所示的界面,用户选择相应的选项后即可执行关机和重新启动操作。并将此次的选择保存下来。

图86-1 运行结果

技术要点

l 关闭和重新启动计算机

l 窗体的KeyPreview 属性

实现过程

■ 新建项目

打开Visual Studio.NET,选择"新建项目",在项目类型窗口中选择"Visual Basic项目",在模板窗口中选择"Windows应用程序",在名称域中输入"ControlComputer",然后选择保存路径。单击"确认"。

添加控件

向当前窗体添加一个Label控件、一个PictureBox控件、两个Button按钮和三个RadioButton控件。

■ 设置属性

切换到属性栏,对窗体及控件设置属性,详细情况如表86-1所示。

注意:如果KeyPreview 属性被设置为True,窗体将先于该窗体上的控件接收此事件。可用 KeyPreview 属性来创建全局键盘处理例程。

表86-1 窗体及控件的属性

窗体/控件 属性

Form1 BorderStyle 4-Fixed ToolWindow

KeyPreview True

Command1 Caption 是(&Y)

Picture1 Picture App.path & "/1.jpg"

其他控件 Caption 跟界面一致

添加代码

Private Declare Function ExitwindowsEx Lib "user32" (ByVal uFlags As Integer,ByVal dwReserved As Integer) As Integer

Const EWX_FORCE As Short = 4

Const EWX_logoFF As Short = 0

Const EWX_REBOOT As Short = 2

Const EWX_SHUTDOWN As Short = 1

Dim retval As Integer

' 定义Esc按键

Const VK_ESCAPE As Short = &H1Bs

Private Sub Command1_Click(ByVal eventSender As System.Object,ByVal eventArgs As System.EventArgs) Handles Command1.Click

If 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 If

End Sub

Private Sub Command2_Click(ByVal eventSender As System.Object,ByVal eventArgs As System.EventArgs) Handles Command2.Click

Me.Close()

End Sub

' 按Esc键时,结束应用程序

Private Sub Form1_KeyPress(ByVal eventSender As System.Object,ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress

Dim KeyAscii As Short = Asc(eventArgs.KeyChar)

If KeyAscii = VK_ESCAPE Then

Me.Close()

End If

If KeyAscii = 0 Then

eventArgs.Handled = True

End If

End Sub

■ 运行程序

单击菜单"调试|启动"或单击 图标运行程序。

小结

本实例通过使用ExitwindowEx()API函数来达到关机和重新启动的目的。在ExitwindowEx()函数中,参数uFlags指定要进行何种操作。在表86-2中列出了参数uFlags的值及其说明。

表86-2 参数uFlags的值及说明

常量名 值 说明

EWX_FORCE 4 终止所有进程,包括没有响应的进程,并注销Windows

EWX_REBOOT 2 重新启动系统

EWX_SHUTDOWN 1 关闭系统

EWX_logoFF 0 终止所有正在运行的进程,并注销Windows

原文地址:https://www.jb51.cc/vb/264280.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐