这个程序用于定时操作。
其实这份代码个人觉得效率不够高,本人暂时没空优化,不好意思,那位朋友看后有建议的可以联系我。
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