开启辅助访问

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

python如何实现 程序_重启()

查看数: 280 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页 & lt;-左 右 ->
    组图打开中,请稍候......
发布时间: 2025-2-4 23:26

正文摘要:

我的思路 首先获取自身程序的路径 比如"D:\客户Duan.exe" 1创建一个bat文件  --延迟3秒 启动程序 删除bat @echo offtimeout /t 3 >nulstart "" "D:\客户Duan.exe"timeout /t 1 >nuldel "%~f02执行bat3结 ...

回复

chenboss   福建省莆田市 发表于 2025-2-5 01:12:22
八月已存在 发表于 2025-2-5 01:03
这个确实是最省事的办法 但是这样托盘图标会残留 有什么办法可以把残留的托盘图标去掉吗 ...

执行前把托盘图标取消掉啊
八月已存在   安徽省阜阳市 发表于 2025-2-5 01:03:16
chenboss 发表于 2025-2-5 00:44
无需创建bat,执行命令行:cmd /c taskkill /f /im 1.exe & timeout 3 & 1.exe

这个确实是最省事的办法 但是这样托盘图标会残留 有什么办法可以把残留的托盘图标去掉吗
灵感吖   黑龙江省伊春市 发表于 2025-2-5 00:38:55
import os
import psutil  # 需要安装psutil库
import time

def find_and_kill_process(process_name):
    """
    查找并终止指定名称的进程
    """
    for proc in psutil.process_iter(attrs=['pid', 'name']):
        try:
            if process_name.lower() in proc.info['name'].lower():
                print(f"找到进程 {proc.info['name']},正在终止...")
                proc.terminate()  # 终止进程
                proc.wait(timeout=5)  # 等待进程终止
                print(f"进程 {proc.info['name']} 已终止")
                return True
        except psutil.NoSuchProcess:
            continue
    print(f"未找到名为 {process_name} 的运行进程")
    return False

def restart_program(program_path):
    """
    重启指定的程序
    """
    if os.path.exists(program_path):
        print(f"正在启动程序 {program_path}...")
        os.startfile(program_path)  # 启动程序
        print("程序启动成功")
    else:
        print(f"程序路径不存在:{program_path}")

if __name__ == "__main__":
    # 酷狗音乐的可执行文件名称和路径(根据实际情况调整)
    program_name = "KuGou.exe"
    program_path = r"C:\Program Files (x86)\Kugou\KGMusic\KuGou.exe"

    # 关闭程序
    if find_and_kill_process(program_name):
        time.sleep(2)  # 等待进程完全退出

    # 重启程序
    restart_program(program_path)
八月已存在   安徽省阜阳市 发表于 2025-2-4 23:29:33
排版乱了 重新发下

我的思路
首先获取自身程序的路径 比如"D:\客户Duan.exe"

1创建一个bat文件  --延迟3秒 启动程序 删除bat

@echo offtimeout /t 3 >nul
start "" "D:\客户Duan.exe"
timeout /t 1 >nul
del "%~f0
2执行bat
3结束程序

现在问题是 bat执行到 start "" "D:\客户Duan.exe"就报错
chenboss   福建省莆田市 发表于 2025-2-4 23:26:45
无需创建bat,执行命令行:cmd /c taskkill /f /im 1.exe & timeout 3 & 1.exe

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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