【问题标题】:Launch a video, and if it is closed, launch it again启动视频,如果已关闭,请再次启动
【发布时间】:2014-01-11 01:08:43
【问题描述】:

会发生什么,而不是做我想做的事,它会在 4 秒睡眠后重新启动程序,然后模块 check_process 所做的是检查进程是否打开并返回 1 表示打开或 0 表示关闭,但我只是想不通为什么在满足条件时它不会从 if 循环移动到 else 循环,如果有人可以帮助我,那就太好了,谢谢!

import os
import time
import check_process
c = 5
global isProcessFound
isProcessFound = 0
while c == 5:
    check_process.check("wmplayer.exe")
    if isProcessFound == 0:
        os.startfile("C:\\Users\\Kevin\\Desktop\\PYTUT.mp4")
        time.sleep(4)
    else:
        time.sleep(3)

【问题讨论】:

    标签: python


    【解决方案1】:

    我找不到有关您导入的 check_process 模块的任何信息,但我找到了您可以使用的 SO answer。这会给你类似的东西:

    import psutil  # From https://code.google.com/p/psutil/
    
    def is_running(process_name):
        return process_name in psutil.get_process_list()
    

    但是查看您的代码,问题似乎是您从未更新cisProcessFound,所以我不明白您的程序如何终止或执行任何其他操作,而不是启动视频并休眠 4 秒.也许你只需要写:

    isProcessFound = check_process.check("wmplayer.exe")
    

    并在您希望程序关闭时更新c

    【讨论】:

    • 我明白了,我终于用 import os import time global a c = 5 while c == 5: w = "wmplayer.exe" o = os.popen("tasklist.exe" ).read() if w in o: time.sleep(5) else: os.startfile("C:\\Users\\Kevin\\Desktop\\PYTUT.mp4") 如果我能弄清楚如何在评论中格式化该权利>.
    • @user3179485:如果您的评论是对您的问题的回答,您应该将其作为单独的答案发布。否则你可以使用`来格式化代码。
    猜你喜欢
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    • 2016-06-09
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多