让软件在工作日启动,节假日自动关闭的小程序,前后台,数据库全套

查看 163|回复 10
作者:Pwaerm   
特别是遇到调休,有些按星期1-5工作,周末不工作的软件有时候体现得不太友好 。所以折腾了这个玩意儿。
PYTON运行图



运行图.png (296 KB, 下载次数: 0)
下载附件
2024-4-10 16:42 上传

节假日数据库结构


数据库.png (224.8 KB, 下载次数: 0)
下载附件
2024-4-10 16:42 上传

后台PHP代码




后台.png (103.76 KB, 下载次数: 0)
下载附件
2024-4-10 16:42 上传

[Asm] 纯文本查看 复制代码import time
import threading
import requests
import subprocess
# 检测程序进程是否存在
def processIsRun(_processName):
    processes = psutil.process_iter(['name'])
    for proc in processes:
        _name = proc.name().upper()
        if _processName in _name:
            return proc
    return False
# 每分钟检查并操作一次
def checkProcess():
    if mode:
        processKey = [{"processName": "QtScrcpy.exe", "path": "C:\Program Files (x86)\QtScrcpy-win-x64-v2.1.2\QtScrcpy.exe"}, {
            "processName": "QQ.exe", "path": "C:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe"}]
        for _key in processKey:
            _process = processIsRun(_key['processName'].upper())
            if mode == 'kill':
                if _process:
                    _process.kill()
                else:
                    print(_key['processName'], "没有运行,不予处理")
            if mode == 'run':
                if _process:
                    print(_key['processName'], "程序已经在运行,不予处理")
                else:
                    print("运行", _key['path'])
                    try:
                        subprocess.Popen(_key['path'])
                        print("应用程序已成功启动!")
                    except Exception as e:
                        print("启动应用程序时出现错误:", e)
        time.sleep(60)
    else:
        time.sleep(6)
    checkProcess()
# 读取远程限制进程的数据
def checkHoliDay():
    global mode
    params = {"type": "checkHoliDay"}
    response = requests.post(
        url="https://查询是不是工作日的接口地址/", params=params)
    if response.status_code == 200:
        try:
            configData = response.json()
            if configData["holiday"] == 0:
                mode = 'run'
            if configData["holiday"] == 1:
                mode = 'kill'
            print(mode)
            time.sleep(60*30)
        except:
            print("数据异常!")
            time.sleep(60)
    else:
        print("加载失败!")
        time.sleep(60)
mode = ''
checkHoliDayThread = threading.Thread(target=checkHoliDay)
checkHoliDayThread.start()
checkProcessThread = threading.Thread(target=checkProcess)
checkProcessThread.start()
python文件,php文件,sql文件我都打包上传了。  接口地址也替换了(以前发帖子不小心附带了其它网站链接被警告了,所以不敢发接口地址)


节假日数据我也是从公开的API中获取的,一年获取一次放到自己的数据库中就行了。

节假日, 下载次数

Pwaerm
OP
  


yeah_go 发表于 2024-4-10 23:56
大哥 比较好奇 你的工作日数据 是从哪里来的? 有多长时间?

我是从 [Asm] 纯文本查看 复制代码https://timor.tech/api/holiday/year/2024 获取的数据
以下是我把它转存到自己数据库的代码
[Asm] 纯文本查看 复制代码function getHoliDateByAPI() {
    $.ajax({
        url: "https://timor.tech/api/holiday/year/2024",
        type: "GET",
        dataType: "json",
        success: function (_data) {
            //console.log(_data);
            var _dates = [];
            for (var _time in _data.holiday) {
                //console.log(_time);
                var _date = _data.holiday[_time];
                // console.log(_date);
                var _o = { holiday: _date.holiday, info: _date.name, date: _date.date, replaceDate: "" };
                _dates.push(_o);
            }
            saveHoliDate(_dates);
        }
    })
}
function saveHoliDate(_data) {
    $.ajax({
        url: "https://我的数据地址/holiday/",
        type: "POST",
        dataType: "json",
        data: { type: "addHoliDay", data: JSON.stringify(_data) },
        success: function (_d) {
            console.log(_d);
        }
    })
}
function init() {
    getHoliDateByAPI();
}
if (typeof $ == 'undefined' || typeof $.ajax == 'undefined') {
    var s = document.createElement("script");
    s.onload = init;
    s.src = "https://cdn.bootcss.com/jquery/3.1.1/jquery.min.js";
    document.getElementsByTagName("HEAD")[0].appendChild(s);
} else {
    init();
}
//https://timor.tech/api/holiday/year/2024
console.log("holiday_SCRIPT_INIT");
lelechang2007   

太厉害了,正需要谢谢
sutramusic   

多谢分享,有时间研究一下。
iAgain   

哈哈哈,这个挺有用,谢谢!
杀神灭佛   

看看,学习下
huixin2017520   

感谢大佬分享
waxiaochun   

谢谢大佬分享
wapjltyhm   

感谢分享,值得学习
xin1you1di1   

多谢分享,有时间研究一下
您需要登录后才可以回帖 登录 | 立即注册

返回顶部