吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2700|回复: 29
收起左侧

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

[复制链接]
Pwaerm 发表于 2024-4-10 16:36
本帖最后由 Pwaerm 于 2024-4-10 16:43 编辑

特别是遇到调休,有些按星期1-5工作,周末不工作的软件有时候体现得不太友好 。所以折腾了这个玩意儿。


PYTON运行图

运行图.png


节假日数据库结构

数据库.png


后台PHP代码


后台.png

[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中获取的,一年获取一次放到自己的数据库中就行了。

holiday.zip

3.11 KB, 下载次数: 58, 下载积分: 吾爱币 -1 CB

点评

放个baidu都能给你警告  发表于 2024-4-10 16:51

免费评分

参与人数 10吾爱币 +13 热心值 +10 收起 理由
Despresso + 1 谢谢@Thanks!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
helian147 + 1 + 1 热心回复!
策士 + 1 + 1 谢谢@Thanks!
lovemonday66 + 1 + 1 我很赞同!
SVIP9大会员 + 1 + 1 热心回复!
Bob5230 + 1 + 1 我很赞同!
HakureiYuyuko + 1 谢谢@Thanks!
杀神灭佛 + 1 谢谢@Thanks!
52rap + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| Pwaerm 发表于 2024-4-11 08:08
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 发表于 2024-4-10 16:44
sutramusic 发表于 2024-4-10 16:53
iAgain 发表于 2024-4-10 17:05
哈哈哈,这个挺有用,谢谢!
杀神灭佛 发表于 2024-4-10 17:26
看看,学习下
wapjltyhm 发表于 2024-4-10 18:09
感谢分享,值得学习
xin1you1di1 发表于 2024-4-10 19:15
多谢分享,有时间研究一下
ynthwf 发表于 2024-4-10 20:18
不错,以前想过
ysjd22 发表于 2024-4-10 20:38
真心不错啊。谢谢
stu0011613 发表于 2024-4-10 21:46
高手啊,看看代码
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-14 12:43

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表