[置顶] 为父母写一份按时睡觉的软件

做儿女的长期在外工作或者学习,很少有时间关心父母。

如今电脑已经算是很普及的电器了,父母看电视时候经常忘记关电脑,或者玩电脑一直玩很久忘记睡觉。这时候记得为父母写一份关心父母身体的软件。

首先,打开VS.NET

在新建中选择服务,输入新建的软件名称,在弹出的代码窗口复制以下内容

###############分割线#######请勿复制################

Imports System
Imports System.Timers
Module Module1
    Public Class Timer1
        Private Shared aTimer As System.Timers.Timer ''''''''''''''''''''默认格式
        Public Shared Sub Main()
            '//////////////////////////////////////////////////////////////如果有进程存在则关闭程序
            If UBound(Process.GetProcessesByName(Process.GetCurrentProcess.ProcessName)) > 0 Then
                End
            End If
            ' ////////////////////////////////////////////////////////////
            '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''自定义定时器
            aTimer = New System.Timers.Timer() ''''''''''''''''''''''''''NEW一个新对象
            AddHandler aTimer.Elapsed, AddressOf OnTimedEvent '''''''''''定义响应事件
            aTimer.Interval = 60000 '''''''''''''''''''''''''''''''''''''修改启动时间(毫秒),我定义的是一分钟
            aTimer.Enabled = False ''''''''''''''''''''''''''''''''''''''默认不启动定时器,有需要再启动
            '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''定义结束
            While (1)
                If Now.Hour >= 0 And Now.Hour <= 6 Then ''''''''''''''''''''''''''''如果时间为0-6点则执行以下任务
                    aTimer.Enabled = True
                    aTimer.Start()
                    If MsgBox("现在时间:" + Now() + "时间已经不早了,早点休息吧!", 4096, "提示") Then '**************************核心窗口,并且永远保持前台
                        aTimer.Stop()
                        aTimer.Enabled = False
                        '///////////////////////////////////////////////////////////处理内存占用问题
                        System.Diagnostics.Process.GetCurrentProcess.MaxWorkingSet = 300000 ''''''''''''''''''''''''''''内存数
                        System.Diagnostics.Process.GetCurrentProcess.MinWorkingSet = New System.IntPtr(5)
                        GC.Collect() '*********************************************调用系统垃圾回收机制
                        '//////////////////////////////////////////////////////////请按具体需要修改数字
                        System.Threading.Thread.Sleep(1500000) ''''''''''''''''''''''''''''''''''暂停一段时间,也就是每间隔一段时间提醒用户一次操作。我定义的是25分钟
                    End If
                End If
                '///////////////////////////////////////////////////////////处理内存占用问题
                System.Diagnostics.Process.GetCurrentProcess.MaxWorkingSet = 300000 ''''''''''''''''''''''''''''内存数
                System.Diagnostics.Process.GetCurrentProcess.MinWorkingSet = New System.IntPtr(5)
                GC.Collect()
                '//////////////////////////////////////////////////////////请按具体需要修改数字
                System.Threading.Thread.Sleep(300000) '**************************************************************这个很重要,每隔一定时间检测时间是否进入指定时间。
            End While
        End Sub
        Private Shared Sub OnTimedEvent(ByVal source As Object, ByVal e As ElapsedEventArgs)
            '////////////////////////////////////////////////////定时器的作用是用户在一定时间内没有进行相关操作则执行一下操作
            Shell("shutdown -s -t 5")
        End Sub
    End Class
End Module


###############分割线#######请勿复制################
点击运行,便生成了需要的软件了。
在此,需要提示的是,网上下载的关机软件大多是定时关机功能,如果父母在关机的时候还有重要文件没有保存那么后果就很严重了。所以,作者认为有必要取消定时功能,取而代之的是提醒关机的功能。如果父母在一定时间未关闭提示窗口,则认为父母已经睡着了,系统自动关机。
本程序运行中占用内存很低,大约有500KB左右,而网上普遍存在的定时关机软件占用内存普遍在5M左右,极大的占用了系统资源。

-----------------------------------程序员 闫帆原创---------------------------------------

转载请注明原创人信息  程序员 闫帆yanfanvip


posted @ 2011-08-05 16:15  程序员闫帆  阅读(183)  评论(0编辑  收藏  举报