【问题标题】:Python script waiting for some program being launched and then starting another program. (Windows)Python 脚本等待某个程序启动,然后启动另一个程序。 (视窗)
【发布时间】:2016-05-22 02:45:38
【问题描述】:

我想编写一个 Python 脚本,最终将其转换为 .exe(可以说是使用 pyinstaller)并添加到 Windows 启动应用程序列表中。这个程序(一旦启动)应该“监控”用户并等到用户启动一个指定的程序(比如 program1.exe),然后我的 python 程序应该启动另一个指定的程序(program2.exe)。

我知道有类似子进程的东西可以从 python 脚本启动另一个程序,但到目前为止我无法让它工作;/ 说到这部分,我需要监控用户是否启动了指定的程序我不知道如何咬这个。我不希望有一个完整的解决方案(尽管找到这样的解决方案会非常好;p),但任何指南或线索都会非常有帮助。

【问题讨论】:

    标签: python windows subprocess monitor


    【解决方案1】:

    监控用户是否启动程序,我会使用psutil:https://pypi.python.org/pypi/psutil 为了从 python 脚本启动另一个程序,我会使用子进程。

    要使用子流程启动某些内容,您可以执行以下操作:

    PATH_TO_MY_EXTERNAL_PROGRAM = r"C:\ProgramFiles\MyProgram\MyProgramLauncher.exe"
    subprocess.call([PATH_TO_MY_EXTERNAL_PROGRAM])
    

    如果它像调用 exe 一样简单,你可以使用:

    PATH_TO_MY_EXTERNAL_PROGRAM = r"C:\ProgramFiles\MyProgram\MyProgramLauncher.exe"
    os.system(PATH_TO_MY_EXTERNAL_PROGRAM)
    

    希望这会有所帮助。

    -亚历克斯

    【讨论】:

    • 非常感谢! Subprocess 工作得很好,我已经成功地检测到我正在运行的进程。但是这个“subprocess.call”似乎正在等待进程结束。有没有办法跳过这个?我的意思是启动这个外部进程然后关闭我的脚本?
    • @Devlige, subprocess.call 包裹subprocess.Popen 等待进程退出并返回退出代码。如果您不想等待,请直接拨打Popen
    猜你喜欢
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 2018-05-17
    • 1970-01-01
    • 2014-11-16
    • 2017-09-08
    • 1970-01-01
    相关资源
    最近更新 更多