超级稳定的脚本闹钟(连续一年每天都响)

公司服务器电脑设置午睡闹钟

我们公司服务器上设置了一个小音响,以前有管理员用了酷狗音乐设置闹钟。(有时候突然小苹果真的很闹心)
问题当然不是小苹果,而是服务器电脑每次需要登陆后并且手动打开酷狗音乐,才会有闹钟响应。有时候呢一周没人去碰服务器,所以也没登陆过,远程登陆后打开,闹钟的声音是不会响的。所以需要写一个自动的每天播放的闹钟,并且不管用户登陆与否,只要电脑开机,就每天中午一点准时叫大家起床。

罗列一下需求:
1.每天中午1点准时起床。
2.不要太嘈杂的音乐。
3.开机自动启动,不管是否登录。

于是乎上网搜索了一个VBS脚本

dim i,j,shell,ws
set shell=createobject("shell.application")
set ws=createobject("wscript.shell")
i=13
j=0
do
    if hour(time)=csng(i) and minute(time)=csng(j) then
    ws.Run """C:\Program Files\Windows Media Player\wmplayer.exe"" ""F:\个人资源\纸短情长.mp3"""
    wscript.sleep 3600000
    else 
    wscript.sleep 10000
    end if   
loop

然后通过“任务计划程序”设置开机自启动。别说,每天真的挺准时,挺好用。音乐固定换成了花粥的纸短情长,声音由小变大,也不会腻,也不会吵。但是,由于是调用的外面windows自带的app,不知道为什么,后面经常报错,脚本里面又很难解决,手动点击重新打开又好了。

于是现在准备用C#重新写。
首先搜索怎么播放音乐:
搜到一段有用的代码 c# mp3播放控件
【注意】
需先在项目属性的引用的COM里面添加名为Windows Media Player、路径为C:\Windows\System32\wmp.dll引用! 引用后显示为WMPLib,然后在程序最前面加上:

using WMPLib;
//【示例】
WMPLib.WindowsMediaPlayer wmp = new WindowsMediaPlayer();
wmp.URL = @"G:\我的音乐\卓依婷 - 花好月圆.mp3";
wmp.controls.play();

然后利用System.Timers.Timer创建了如下的闹钟:

using System;
using System.Media;
using System.Threading;
using System.Timers;
using WMPLib;
class Program
    {
    static void Main(string[] args)
        {
            System.Timers.Timer alarm;
            alarm = new System.Timers.Timer(1000);
            alarm.Elapsed += new System.Timers.ElapsedEventHandler(theout);//到达时间的时候执行事件;
            alarm.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
            alarm.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;  
            AutoResetEvent auto = new AutoResetEvent(false);
            auto.WaitOne();
        }
 static bool isopen = false;
 private static void theout(object sender, ElapsedEventArgs e)
       {
     int h=DateTime.Now.Hour; 
            int min=DateTime.Now.Minute; 
            int sec=DateTime.Now.Second; 
     if (h == 0 && min == 0 && sec < 10)
                isopen = false;
            if (h == 13 && min == 0 && sec < 10 && !isopen)
            {
                isopen = true;
                Play();             
            }
       }
       static void Play()
        {
            WMPLib.WindowsMediaPlayer wmp = new WindowsMediaPlayer();
            wmp.URL = @"锐达闹钟.mp3";
            wmp.controls.play();
        }    
    }           

过几周看看效果呢 哈哈。

另外关于Win10自启动任务计划的设置:

1:🔍左下角搜索“任务计划程序”
2:创建任务
在这里插入图片描述
3.不管用户登陆都要运行并设置最高权限
在这里插入图片描述
4.新建触发器:设置启动时开始任务
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200620151549222.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2plbWlfQQ==,size_16,color_FFFFFF,t_70
5.新建操作设置启动程序位置
在这里插入图片描述6。去掉默认的设置勾选“如果任务超过一下时间,停止任务”
.在这里插入图片描述
7.输入用户登陆密码点击确定

等待效果哦。

最终结果:

后续PS:C#重写的貌似不好用,因为那个简单的代码可以用,就没去调试了,但文章后面介绍的任务计划的添加都是一样的,为的是每次启动电脑都会启动该闹钟程序。
后续PS:
继续使用之前的脚本然后优化后的代码,每次调用时都把脚本初始化,这样,就不会出现报错的问题,并且,现在没有人干预,运行了一年多了,每天中午准时叫你起床哦。
最终的vbs脚本代码

dim i,j,ws
i=13 '设置的小时
j=00 '设置的分钟
do
    if hour(time)=csng(i) and minute(time)=csng(j) then
    set ws=createobject("wscript.shell")
    ws.Run "F:\个人资源\闹钟\闹钟.mp3"  '你的闹钟需要播放的音乐文件
    set b=createobject("wscript.shell")
    b.sendkeys "%{F4}" '自动关闭播放器
    wscript.sleep 72000000 '先睡眠20小时就是20*60*60*1000ms然后再循环获取时间
    else 
    wscript.sleep 10000
    end if   
loop

一定要记住哦,要按照之前的步骤吧vbs脚本加到自启动任务计划里面哦 ==>>在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汪汪星河

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值