开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 278|回复: 5
打印 上一主题 下一主题
收起左侧

[已解决] python如何实现 程序_重启()

 关闭 [复制链接]
结帖率:92% (11/12)
跳转到指定楼层
楼主
发表于 2025-2-4 23:26:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式   安徽省阜阳市
9精币
我的思路
首先获取自身程序的路径 比如"D:\客户Duan.exe"
1创建一个bat文件  --延迟3秒 启动程序 删除bat
@echo offtimeout /t 3 >nulstart "" "D:\客户Duan.exe"timeout /t 1 >nuldel "%~f02执行bat3结束程序现在问题是 bat执行到 start "" "D:\客户Duan.exe"
就报错

报错.png (8.18 KB, 下载次数: 0)

报错.png

最佳答案

查看完整内容

无需创建bat,执行命令行:cmd /c taskkill /f /im 1.exe & timeout 3 & 1.exe

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳

结帖率:100% (3/3)

签到天数: 3 天

沙发
发表于 2025-2-4 23:26:45 | 只看该作者   福建省莆田市
无需创建bat,执行命令行:cmd /c taskkill /f /im 1.exe & timeout 3 & 1.exe

评分

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

查看全部评分

回复

使用道具 举报

结帖率:92% (11/12)

签到天数: 2 天

板凳
 楼主| 发表于 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"就报错
回复

使用道具 举报

结帖率:91% (214/234)

签到天数: 9 天

地板
发表于 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)
回复

使用道具 举报

结帖率:92% (11/12)

签到天数: 2 天

地下
 楼主| 发表于 2025-2-5 01:03:16 | 只看该作者   安徽省阜阳市
chenboss 发表于 2025-2-5 00:44
无需创建bat,执行命令行:cmd /c taskkill /f /im 1.exe & timeout 3 & 1.exe

这个确实是最省事的办法 但是这样托盘图标会残留 有什么办法可以把残留的托盘图标去掉吗
回复

使用道具 举报

结帖率:100% (3/3)

签到天数: 3 天

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

执行前把托盘图标取消掉啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

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

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

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