思路
简单的说就是用Python做一个定时器和c#做一个播放音乐的框体,这个定时器会根据当前的时间去和你设定的时间去匹配,当匹配得上的时候,就会去执行c#框体所生成的exe可执行文件的程序,这时就会有音乐循环响起,思路基本上就是这样。
语言及编辑的工具
语言:python语言、c#语言
工具:IDLE(python 3.7 64-bit)、vs2013
步骤
建立一个播放音乐的宽体
首先先建立一个c#项目
点击:文件→新建→项目(弹出框体)然后修改文件名为clock
然后在form1的框体里面添加三个控件label(label控件可在左边的工具栏里直接搜索出来)然后点击label1控件在右下边的属性框里的text里修改为当前时间
点击label2在右下角的属性框中的text将label2的字样删除
点击label3在右下角的属性框text中将猪快点起床…………(这里的文本可以根据自己的需求去写)
然后在添加一个播放音乐的播放器,这里我用到的是Windows media players这一控件,这控件是在菜单栏中的工具→选择工具箱选项→COM组件
在加个timer控件最后的布局就出来了
接下来就是往控件里面写代码了
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace clock
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Interval=1000;//进行秒刷新一次
timer1.Enabled = true;
timer1.Start();
//出去label背景的颜色//
label1.BackColor = Color.Transparent;
label2.BackColor = Color.Transparent;
label3.BackColor = Color.Transparent;
this.axWindowsMediaPlayer1.URL = ("D:\\闹钟2\\起床铃声.mp3");//给Windowsmediaplayer指定音乐播放路径
}
private void timer1_Tick(object sender, EventArgs e)
{
DateTime time = DateTime.Now;//获取当前时间
label2.Text = time.ToString();//将当前时间显示在label2控件
}
private void label3_Click(object sender, EventArgs e)
{
}
}
}
python做的定时器
import os
import sys
import time
import subprocess
from datetime import datetime
from tkinter import messagebox
if len(sys.argv) == 1:
msg = input('请输入提示要做的事情\n')
t = input('请输入到期时间, 格式:时:分:秒\n')
hms = t.split(':') if ':' in t else t.split(':')
h, m, s = hms
h = 0 if int(h) >= 24 else int(h)
m, s = min(int(m), 59), min(int(s), 59)
now = datetime.now()
nh, nm, ns = now.hour, now.minute, now.second
counter = abs(h - nh) * 60 * 60 + (m - nm) * 60 + (s - ns)
subprocess.Popen(['pythonw', __file__, msg, str(counter)])
else:
time.sleep(int(sys.argv[2]))
main = "D:\clock\clock.exe"
f = os.popen(main)
data = f.readlines()
f.close()
print (data)
运行结果
到时候就会弹出form1窗体音乐响起
链接:https://pan.baidu.com/s/1tmvfw_GHY5n7AzLgF5pdRw
提取码:bj1o