公司服务器电脑设置午睡闹钟
我们公司服务器上设置了一个小音响,以前有管理员用了酷狗音乐设置闹钟。(有时候突然小苹果真的很闹心)
问题当然不是小苹果,而是服务器电脑每次需要登陆后并且手动打开酷狗音乐,才会有闹钟响应。有时候呢一周没人去碰服务器,所以也没登陆过,远程登陆后打开,闹钟的声音是不会响的。所以需要写一个自动的每天播放的闹钟,并且不管用户登陆与否,只要电脑开机,就每天中午一点准时叫大家起床。
罗列一下需求:
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.新建触发器:设置启动时开始任务
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脚本加到自启动任务计划里面哦 ==>>