Python2.5和Tski

2024-04-19 15:52:09 发布

您现在位置:Python中文网/ 问答频道 /正文

在使用python2.7时,我让tskill操作在python脚本中运行良好,但是当我切换到2.5时,这段代码失败了。在

import os
import time
import win32com.client
os.startfile('cmd')
shell = win32com.client.Dispatch("WScript.Shell")
shell.AppActivate('Administrator:C:\Windows\System32\cmd.exe')
time.sleep(2)
shell.SendKeys('tskill java + {ENTER}')
time.sleep(2)
shell.Sendkeys('tskill javaw + {ENTER}')
#shell.SendKeys('exit + {ENTER}')

我使用os.startfile运行一个python脚本来打开并运行应用程序(它是一个图形工具)。在

注意:调用此脚本时,应用程序已经在运行,因此我不需要在此处打开它。

有人能告诉我如何在python2.5上使用这个或类似的方法成功地关闭一个应用程序吗。谢谢你的帮助!在


Tags: 代码import脚本cmdclient应用程序timeos
1条回答
网友
1楼 · 发布于 2024-04-19 15:52:09

我的系统上没有tskill,但我认为它类似于taskkill /F /FI "IMAGENAME eq java*"。总之,下面是如何使用subprocess模块(在python2.5.2中测试,但使用taskkill在后台调用普通控制台应用程序(即隐藏窗口):

import subprocess

def tskill(*args):
    si = subprocess.STARTUPINFO()
    si.dwFlags |= subprocess.STARTF_USESHOWWINDOW
    command = ('tskill',) + args
    rc = subprocess.call(command, startupinfo=si)
    return rc == 0

if tskill('java') and tskill('javaw'):
    #success

我使用call,因为它只影响调用的成功与否,但是通常可以使用subprocess.PIPE来使用subprocess.Popen来捕获stdout和stderr。在

编辑:如何终止用subprocess模块启动的进程

^{pr2}$

相关问题 更多 >