最近在网上搜索了一些关于编程实现定时关机、重启、注销的文章,发现大多介绍的是VB.NET2005用API实现这些功能
本文所使用的编程环境是Microsoft Visual Studio 2005,首先打开 Visual Studio。在文件 (File) 菜单上,单击新建项目 (New Project)。 在新建项目 (New Project) 对话框的模板 (Templates) 窗格中,单击 Windows 应用程序 (Windows Application)。单击确定 (OK)。
具体步骤如下:
首先在Form1窗体上添加一个Label1控件属性text设置为:今天:2.然后分别添加3个button控件name分别为button1、button2、button3它们的text属性分别为1. 关闭计算机(启动定时器)2. 注销3. 重新启动。
现在我们就需要为程序加上一个定时器了,这个定时器需要与textBox1控件相关联,输入正确时间格式后就可以启动定时功能了。然后我们需要在窗体上添加一个timer、一个textBox1控件、和一个RadioButton1控件。让它们保留默认值不变。其中. TextBox1控件的text属性设置为:00:00:00 。RadioButton1控件text设置为:指定时间关机|时间格式:00小时:00分钟:00秒
双击窗体进入常规-声明Public Class Form1 事件中。以上介绍VB.NET实现定时关机
- Imports System.Runtime.InteropServices
- Imports Microsoft.VisualBasic
- Public Class Form1
- '调用系统参数
- Friend Shared Function GetCurrentProcess() As IntPtr
- End Function
- Friend Shared Function OpenProcessToken(ByVal h As IntPtr,
- ByVal acc As Integer,ByRef phtok As IntPtr) As Boolean
- End Function
- Friend Shared Function LookupPrivilegeValue(ByVal host As String,
- ByVal name As String,ByRef pluid As Long) As Boolean
- End Function
- Friend Shared Function AdjustTokenPrivileges(ByVal htok As IntPtr,
- ByVal disall As Boolean,ByRef newst As TokPriv1Luid,
- ByVal len As Integer,ByVal prev As IntPtr,
- ByVal relen As IntPtr) As Boolean
- End Function
- Friend Shared Function ExitWindowsEx(ByVal flg As Integer,
- ByVal rea As Integer) As Boolean
- End Function
- Friend Const SEPRIVILEGEENABLED As Integer = &H2
- Friend Const TOKENQUERY As Integer = &H8
- Friend Const TOKENADJUSTPRIVILEGES As Integer = &H20
- Friend Const SESHUTDOWNNAME As String = "SeShutdownPrivilege"
- Friend Const EWXlogoFF As Integer = &H0 '注销计算机
- Friend Const EWXSHUTDOWN As Integer = &H1'关闭计算机
- Friend Const EWXREBOOT As Integer = &H2'重新启动计算机
- Friend Const EWXFORCE As Integer = &H4'关闭所有进程,注销计算机
- Friend Const EWXPOWEROFF As Integer = &H8
- Friend Const EWXFORCEIFHUNG As Integer = &H10
- '引用参数
- Friend Structure TokPriv1Luid
- Public Count As Integer
- Public Luid As Long
- Public Attr As Integer
- End Structure
- Private Shared Sub DoExitWin(ByVal flg As Integer)
- Dim xc As Boolean '判断语句
- Dim tp As TokPriv1Luid
- Dim hproc As IntPtr = GetCurrentProcess()
- '调用进程值
- Dim htok As IntPtrIntPtr = IntPtr.Zero
- xc = OpenProcessToken(hproc,TOKENADJUSTPRIVILEGES Or TOKENQUERY,htok)
- tp.Count = 1
- tp.Luid = 0
- tp.Attr = SEPRIVILEGEENABLED
- xc = LookupPrivilegeValue(Nothing,SESHUTDOWNNAME,tp.Luid)
- xc = AdjustTokenPrivileges(htok,False,tp,IntPtr.Zero,IntPtr.Zero)
- xc = ExitWindowsEx(flg,0)
- End Sub
- Public Shared Sub Reboot()
- DoExitWin((EWXFORCE Or EWXREBOOT)) '重新启动计算机
- End Sub
- Public Shared Sub PowerOff()
- DoExitWin((EWXFORCE Or EWXPOWEROFF)) '关闭计算机
- End Sub
- Public Shared Sub logoOff()
- DoExitWin((EWXFORCE Or EWXlogoFF)) '注销计算机
- End Sub
- Dim entTime As Object '保存输入时间
- Dim xianzaiTime As Object '保存实时时间
- Dim startTime As Object '保存开始定时时间
你看使用以上方法就可以实现电脑定时关机,但是这种方法仅适用于会.net编程的用户,不会编程的用户,我还是建议您使用定时关机软件来给电脑定时关机。
定时关机 3000专业的电脑自动关机软件、定时关机软件、家长和电脑管理人员的好帮手、满足各种对电脑定时关机有需求的用户。
以上这两种方法都可以实现电脑的定时关机,你如果要是下载定时关机3000的话,建议您到官方网站下载正式版。
原文链接:https://www.f2er.com/vb/259843.html