这个程序用于定时操作。
其实这份代码个人觉得效率不够高,本人暂时没空优化,不好意思,那位朋友看后有建议的可以联系我。
mailto:wangjingkaibear@live.cn
以下是代码
原本是在Visual Basic 2008 环境下编写的,但回去时装了Visual Basic 2010,它把代码升级了,我看起来好像没变化,不知道怎样。代码有很多用了.net Framework 3.5的标准,所以需要.net Framework3.5支持,请注意。
Public Class Main '添加工具提示 Private Sub Me_Load(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MyBase.Load Me.Hide() If My.Computer.FileSystem.FileExists(Application.StartupPath & "/zh-CN/时间使者 Free Edition.resources.dll") = True Then Me.Show() Else MsgBox("程序检测到程序文件夹‘zh-CN’中的‘时间使者 Free Edition.resources.dll’文件不存在或名称改变,请将文件名改回‘时间使者 Free Edition.resources.dll’或重新安装软件",MsgBoxStyle.OkOnly,"启动错误") Me.Close() End If Dim tooltip1 As New ToolTip tooltip1.SetToolTip(TX_T_SJ1,"这里应该输入完整的时间,即闹钟响起的时间。(输入格式:HH:mm:ss,24小时制)") tooltip1.SetToolTip(TX_T_JG1,"输入一个时间间隔,即在从现在起再过这个时间后,闹钟响起。(单位:秒)") tooltip1.SetToolTip(DSGJ_T_SJ1,"这里应该输入完整的时间,即关机的时间。(输入格式:HH:mm:ss,24小时制)") tooltip1.SetToolTip(DSGJ_T_YC1,"非必要") End Sub '获取系统时间并显示 Private Sub HQSJ11_Tick(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles HQSJ1.Tick Dim time1 As DateTime time1 = My.Computer.Clock.LocalTime.ToLongTimeString DQSJ1.Text = time1 End Sub '闹钟提醒键变化 Private Sub Tixing1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Tixing1.Click If Me.Height = 178 Then Me.Height = 420 Tixing1.Text = "闹钟提醒 ∧" DSGJ1.Enabled = False Else Me.Height = 178 If DSGJ_B_QX1.Enabled = False Then '判断定时关机是否未开启 DSGJ1.Enabled = True End If TX_C_FS1.Checked = False TX_C_FS2.Checked = False TX_T_SJ1.Text = "请填入完整时间" TX_T_JG1.Text = "请填入时间间隔" TX_T_XX1.Text = "" Tixing1.Text = "闹钟提醒 ∨" End If End Sub '定时关机键变化 Private Sub DSGJ1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles DSGJ1.Click Dim XT2 As String If Me.Width = 317 Then Me.Width = 553 XT2 = My.Settings.GJ_XT1 If XT2 <> "" Then If XT2 = "1" Then DSGJ_C_XT1.Checked = True Else DSGJ_C_XT2.Checked = True End If End If Tixing1.Enabled = False DSGJ1.Text = "定时关机<" Else Me.Width = 317 DSGJ_T_SJ1.Text = "请填入完整时间" DSGJ_T_YC1.Text = "" DSGJ_C_XT1.Checked = False DSGJ_C_XT1.Checked = False If TX_B_QX1.Enabled = False Then '判断闹钟提醒是否未开启 Tixing1.Enabled = True End If DSGJ1.Text = "定时关机>" End If End Sub '设置按钮 Private Sub Setting1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Setting1.Click Me.Enabled = False Setting.Show() End Sub '时间计算器按钮变化 Private Sub TX_B_SJZHQ1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles TX_B_SJZHQ1.Click If Me.Height = 420 Then Me.Height = 517 Else Me.Height = 420 End If TX_T_XS1.Text = "" TX_T_FZ1.Text = "" End Sub '方式选择及控件开启 Private Sub TX_C_FS1_CheckedChanged(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles TX_C_FS1.CheckedChanged If TX_C_FS1.Checked = True Then TX_T_SJ1.Enabled = True TX_T_XX1.Enabled = True Else TX_T_SJ1.Text = "请填入完整时间" TX_T_SJ1.ForeColor = Color.Gray TX_T_SJ1.Enabled = False TX_B_KQ.Enabled = False TX_T_XX1.Enabled = False End If End Sub Private Sub TX_C_FS2_CheckedChanged(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles TX_C_FS2.CheckedChanged If TX_C_FS2.Checked = True Then TX_T_JG1.Enabled = True TX_T_XX1.Enabled = True Else TX_T_JG1.Text = "请填入时间间隔" TX_T_JG1.ForeColor = Color.Gray TX_T_JG1.Enabled = False TX_B_KQ.Enabled = False TX_T_XX1.Enabled = False End If End Sub '提醒时间文本框变化的相关影响 Private Sub TX_T_SJ1_TextChanged(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles TX_T_SJ1.TextChanged If TX_T_SJ1.Text = "" Or TX_T_SJ1.Text = "请填入完整时间" Then TX_B_KQ.Enabled = False Else TX_B_KQ.Enabled = True End If End Sub '提醒间隔文本框变化的相关影响 Private Sub TX_T_JG1_TextChanged(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles TX_T_JG1.TextChanged If TX_T_JG1.Text = "" Or TX_T_JG1.Text = "请填入时间间隔" Then TX_B_KQ.Enabled = False Else TX_B_KQ.Enabled = True End If End Sub '闹钟提醒俩文本框鼠标按下事件 Private Sub TX_T_SJ1_MouseDown(ByVal sender As System.Object,ByVal e As System.Windows.Forms.MouseEventArgs) Handles TX_T_SJ1.MouseDown If TX_T_SJ1.Text = "请填入完整时间" Then TX_T_SJ1.Text = "" TX_T_SJ1.ForeColor = Color.RoyalBlue End If End Sub Private Sub TX_T_JG1_MouseDown(ByVal sender As System.Object,ByVal e As System.Windows.Forms.MouseEventArgs) Handles TX_T_JG1.MouseDown If TX_T_JG1.Text = "请填入时间间隔" Then TX_T_JG1.Text = "" TX_T_JG1.ForeColor = Color.RoyalBlue End If End Sub '闹钟提醒开启事件 Private Sub TX_B_KQ_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles TX_B_KQ.Click Dim instance As DateTime Dim value As Double Dim returnValue As DateTime If TX_C_FS1.Checked = True Then My.Settings.TX_SJ1 = TX_T_SJ1.Text My.Settings.TX_XX1 = TX_T_XX1.Text TX_L_Show.Text = "已开启的闹钟提醒:" & TX_T_SJ1.Text TX_T_SJ1.Text = "请填入完整时间" Else instance = DQSJ1.Text value = TX_T_JG1.Text returnValue = instance.AddMinutes(value) My.Settings.TX_JG1 = returnValue My.Settings.TX_XX1 = TX_T_XX1.Text TX_L_Show.Text = "已开启的闹钟提醒:" & returnValue TX_T_JG1.Text = "请填入时间间隔" End If Me.Height = 176 TX_T_XX1.Text = "" TX_C_FS1.Checked = False TX_C_FS2.Checked = False Tixing1.Text = "闹钟提醒 ∨" Tixing1.Enabled = False TX_B_QX1.Enabled = True If DSGJ_B_QX1.Enabled = False Then DSGJ1.Enabled = True End If End Sub Private Sub TX_Timer1_Tick(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles TX_Timer1.Tick If DQSJ1.Text = My.Settings.TX_SJ1 Or DQSJ1.Text = My.Settings.TX_JG1 Then If My.Settings.MusicPath1 = "" Then My.Computer.Audio.Play(Application.StartupPath & "/Resources/Background1.wav") Else My.Computer.Audio.Play(My.Settings.MusicPath1) End If If My.Settings.TX_XX1 = "" Then MsgBox("提醒信息:" & "喂喂,时间到了!该干啥干啥去。","闹钟响起") Else MsgBox("提醒信息:" & My.Settings.TX_XX1,"闹钟响起") End If Tixing1.Enabled = True TX_L_Show.Text = "已开启的闹钟提醒:无" My.Settings.TX_SJ1 = "" My.Settings.TX_JG1 = "" My.Settings.TX_XX1 = "" End If End Sub Private Sub DSGJ_T_SJ1_MouseDown(ByVal sender As System.Object,ByVal e As System.Windows.Forms.MouseEventArgs) Handles DSGJ_T_SJ1.MouseDown If DSGJ_T_SJ1.Text = "请填入完整时间" Then DSGJ_T_SJ1.Text = "" DSGJ_T_SJ1.ForeColor = Color.RoyalBlue End If End Sub Private Sub DSGJ_T_SJ1_TextChanged(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles DSGJ_T_SJ1.TextChanged If DSGJ_C_XT1.Checked = True Or DSGJ_C_XT2.Checked = True Then DSGJ_B_DSKQ1.Enabled = True Else DSGJ_B_DSKQ1.Enabled = False End If End Sub Private Sub DSGJ_C_XT1_CheckedChanged(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles DSGJ_C_XT1.CheckedChanged If DSGJ_C_XT1.Checked = True And DSGJ_T_SJ1.Text = "" Or DSGJ_C_XT1.Checked = True And DSGJ_T_SJ1.Text = "请填入完整时间" Then DSGJ_B_DSKQ1.Enabled = False Else DSGJ_B_DSKQ1.Enabled = True End If End Sub Private Sub DSGJ_C_XT2_CheckedChanged(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles DSGJ_C_XT2.CheckedChanged If DSGJ_C_XT2.Checked = True And DSGJ_T_SJ1.Text = "" Or DSGJ_C_XT2.Checked = True And DSGJ_T_SJ1.Text = "请填入完整时间" Then DSGJ_B_DSKQ1.Enabled = False Else DSGJ_B_DSKQ1.Enabled = True End If End Sub Private Sub DSGJ_B_DSKQ1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles DSGJ_B_DSKQ1.Click If DSGJ_T_SJ1.Text = "" Then MsgBox("请填入时间!","定时关机") Else My.Settings.GJ_SJ1 = DSGJ_T_SJ1.Text My.Settings.GJ_YC1 = DSGJ_T_YC1.Text If DSGJ_C_XT1.Checked = True Then My.Settings.GJ_XT1 = "1" Else My.Settings.GJ_XT1 = "2" End If DSGJ_L_Show.Text = "已开启的定时关机:" & DSGJ_T_SJ1.Text Me.Width = 315 DSGJ1.Text = "定时关机>" DSGJ1.Enabled = False If TX_B_QX1.Enabled = False Then Tixing1.Enabled = True End If DSGJ_B_QX1.Enabled = True End If DSGJ_T_SJ1.Text = "请填入完整时间" DSGJ_T_YC1.Text = "" End Sub Private Sub DSGJ_Timer1_Tick(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles DSGJ_Timer1.Tick Dim systemD As String Dim arguments As String Dim returnValue As Process If DQSJ1.Text = My.Settings.GJ_SJ1 Then If My.Settings.GJ_XT1 = "1" Then systemD = System.Environment.SystemDirectory arguments = "-s -t " & My.Settings.GJ_YC1 My.Settings.GJ_SJ1 = "" My.Settings.GJ_YC1 = "" returnValue = Process.Start(systemD & "/shutdown.exe",arguments) Else systemD = System.Environment.SystemDirectory arguments = "/s /t " & My.Settings.GJ_YC1 My.Settings.GJ_SJ1 = "" My.Settings.GJ_YC1 = "" returnValue = Process.Start(systemD & "/shutdown.exe",arguments) End If End If End Sub Private Sub TX_B_SJZHQ2_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles TX_B_SJZHQ2.Click If TX_T_XS1.Text = "" Then MsgBox("请输入值!","错误") Else TX_T_FZ1.Text = TX_T_XS1.Text * 60 End If End Sub Private Sub TX_T_XS1_TextChanged(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles TX_T_XS1.TextChanged If TX_T_XS1.Text = "" Then TX_T_FZ1.Text = "" End If End Sub Private Sub TX_B_QX1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles TX_B_QX1.Click TX_L_Show.Text = "已开启的闹钟提醒:无" Tixing1.Enabled = True My.Settings.TX_SJ1 = "" My.Settings.TX_JG1 = "" My.Settings.TX_XX1 = "" TX_B_QX1.Enabled = False End Sub Private Sub DSGJ_B_QX1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles DSGJ_B_QX1.Click DSGJ_L_Show.Text = "已开启的定时关机:无" DSGJ1.Enabled = True My.Settings.GJ_SJ1 = "" My.Settings.GJ_XT1 = "" My.Settings.GJ_YC1 = "" DSGJ_B_QX1.Enabled = False End Sub Private Sub AboutButton1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles AboutButton1.Click About.Show() End Sub End Class