python@window10上下课提醒

本文介绍了如何使用Python编写一个Windows服务,实现定时的上课和下课提醒功能,包括弹窗通知和声音提示。服务会在系统启动时自动运行,并每60秒检查时间进行提醒。
摘要由CSDN通过智能技术生成
import os
import sys
import time
import datetime
import winsound
import win32api
import win32serviceutil
import win32service
import win32event
import win32evtlogutil
import socket
import servicemanager

class MyService(win32serviceutil.ServiceFramework):
    _svc_name_ = 'liuxs@上课提醒'
    _svc_display_name_ = 'liuxs@上课和下课提醒软件'

    def __init__(self, args):
        win32serviceutil.ServiceFramework.__init__(self, args)
        self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)
        self.is_running = True

    def SvcStop(self):
        self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
        win32event.SetEvent(self.hWaitStop)
        self.is_running = False

    def SvcDoRun(self):
        win32evtlogutil.ReportEvent(
            self._svc_name_,
            servicemanager.PYS_SERVICE_STARTED,
            0,
            servicemanager.EVENTLOG_INFORMATION_TYPE,
            (self._svc_name_, '')
        )
        self.main()

    def main(self):
        current_time = time.strftime("%H:%M")
        while self.is_running:
            if current_time == "09:00" or current_time == "10:00" or current_time == "11:00":
                self.show_notification("上课提醒", "上课时间到了!")
                self.play_sound()
                self.remind()
            elif current_time == "09:45" or current_time == "10:45" or current_time == "11:45":
                 # 下课时间
                self.show_notification("下课时间", "现在是下课时间,请休息一下!")
                self.play_sound()
                self.remind()
            time.sleep(60)  # 每隔60秒检查一次

    def show_notification(self, title, message):
        win32api.MessageBox(0, message, title, 0x40)

    def remind(self):
        winsound.PlaySound('sound.wav', winsound.SND_FILENAME)  # 播放声音文件

    def play_sound(self):
        frequency = 440
        duration = 1000
        winsound.Beep(frequency, duration)


if __name__ == '__main__':
    if len(sys.argv) == 1:
        servicename = os.path.splitext(os.path.basename(sys.argv[0]))[0]
        servicename = servicename if len(servicename) <= 32 else servicename[:32]
        servicename = f"{servicename}Service"
        argv = [sys.argv[0], 'install', servicename, '--startup', 'auto']
        win32serviceutil.HandleCommandLine(MyService, argv=argv)
    else:
        win32serviceutil.HandleCommandLine(MyService)

'''
python D:\python_bin\alarm\上课提醒.py install
python D:\python_bin\alarm\上课提醒.py start
'''

你可以将以上代码保存为一个Python脚本(例如上课提醒.py),然后通过以下命令来安装和启动服务:

python reminder.py install
python reminder.py start

这样,服务就会在Windows开机后自动启动,并每隔60秒检查一次时间,如果处于上述指定时间段,就会弹出上课提醒的弹窗和播放声音。

AttributeError: module 'servicemanager' has no attribute 'ServiceFramework'

这个错误是由于servicemanager模块中确实没有ServiceFramework属性引起的。为了解决这个问题,可以使用pywin32库中的win32serviceutil模块来替代servicemanager模块。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要在 Windows 10 上使用 Python 实现人脸识别,您需要做以下几件事: 1. 安装 Python 和必要的库,例如 OpenCV。 2. 下载或收集一组训练图像,并使用这些图像训练人脸识别模型。 3. 在代码中加载训练好的模型,并使用它识别视频帧中的人脸。 4. 在识别到人脸后,您可以使用各种方法(例如标记人脸,预测年龄和性别等)来进一步处理图像。 如果您不熟悉人脸识别的原理,您可以先阅读一些有关的资料,并通过学习一些简单的代码示例来了解实现这一目标所需的步骤。 ### 回答2: 要在Windows 10 中使用Python 实现人脸识别,可以使用 OpenCV 和 Dlib 库。以下是一个简单的步骤: 1. 安装 Python 及相应的库:首先需要在 Windows 10 上安装 Python,并使用 pip 安装必要的库,如 OpenCV 和 Dlib。 2. 下载训练模型:下载所需的人脸识别训练模型。一个常用的模型是 Dlib 的 shape_predictor_68_face_landmarks.dat 和 OpenCV 的 haarcascade_frontalface_default.xml。 3. 编写 Python 代码:创建一个 Python 脚本,在其中导入所需的库。使用 OpenCV 来读取摄像头的视频流,并使用 Dlib 的人脸检测器和关键点检测器来检测和定位人脸。 4. 人脸识别:使用人脸检测和关键点检测器定位出人脸后,可以使用预训练模型对人脸进行识别。可以使用 Dlib 的 face_recognition 模块,或者使用其他人脸识别的库。 5. 显示结果:将检测到的人脸以及相关信息显示在窗口中。可以使用 OpenCV 的 draw 函数来绘制人脸框和文字。 6. 运行程序:最后,运行 Python 脚本以启动人脸识别程序。确保摄像头正确连接,并能够获取到视频流。 需要注意的是,人脸识别技术的实现涉及到较为复杂的算法和数据处理,上述步骤仅为一个简单的示例,实际实现可能需要更详细的步骤和更复杂的算法。 ### 回答3: 要用Python实现Windows 10上的人脸识别,可以使用openCV库和dlib库。 首先,在Windows 10上安装Python,然后使用pip安装openCV和dlib库。 然后,下载dlib库所需的预训练模型文件shape_predictor_68_face_landmarks.dat和dlib_face_recognition_resnet_model_v1.dat。 接着,创建一个Python脚本,在脚本中导入所需的库和模型文件。 然后,使用openCV打开摄像头,并读取摄像头捕获的每一帧图像。 对于每一帧图像,首先使用dlib库的人脸检测器检测图像中的人脸位置,并使用68个关键点定位人脸的特征点。 然后,使用dlib库的人脸识别器来计算并提取每个人脸的128维特征向量。 接下来,将每个人的特征向量与已知的人脸特征向量进行比较,以进行人脸识别。 最后,根据比较的结果,可以决定是否识别成功并在图像上标记出每个人脸的位置和识别结果。 可以通过保存已知人脸的特征向量在程序中建立人脸数据库,以便进行人脸识别。 值得注意的是,要使Windows 10支持人脸识别,还需要确保摄像头已正确配置并放置在适当的位置。 通过以上步骤,使用Python可以在Windows 10上实现人脸识别。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

刘贤松

一本万利

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

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

打赏作者

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

抵扣说明:

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

余额充值