怎样用python控制关闭一个.exe的程序?

我打开了一个程序:subprocess.Popen("C:\WINDOWS\system32\abc.exe")
请问怎么控制让它关闭啊?
我用了win32api.TerminateProcess(handle,-1),但是数可能设置的不对,总是不成功。
求知道的朋友给指点一下啊。谢谢!

#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
@Date:
@author
"""
__author__ = 'Sla'
__version__ = '1.0.0'

import pprint

import os
import time
import subprocess

def processkill():
_p = subprocess.Popen("C:\WINDOWS\system32\cmd.exe")
_pid = _p.pid
print "sub pid:", _pid

while _p.poll() == None:
time.sleep( 5 )
#kill subprocess after 5 seconds, if it is not done
if _p.poll() == None:
print "\nKill the subprocess\n"
if os.name == 'nt':
os.system('taskkill /PID %s /T /F' % _pid)
else:
os.system('kill %s' % _pid)
break
else:
if _p.returncode != 0:
print "\nsubprocess run Error"
else:
print "\nsubprocess run OK"

if __name__ == '__main__':
processkill()
——————————————————————————————————————
你可以测试一下,在5秒内打出exit就成功运行,不然就结束cmd进程
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-18
import os
os.system('taskkill /f /im a.exe')

直接杀进程追问

能解释一下括号里面的taskkill /f /im的意思吗?为什么要用/线?f和im分别是什么意思啊?

追答

http://baike.baidu.com/view/1140999.htm

本回答被提问者采纳

python设置多少秒关闭?
窗口置顶 窗口关闭功能失效 运行完后屏幕直接白屏(图片就不放了),常规方法例如关闭、ALT+F4、任务管理器都是没办法关掉的。想要解决可以直接重启或者采取一些特殊方法 完成之后,在终端(或cmd)里运行:pyinstaller-F-w带路径的py文件名.py Python中如何在一段时间后停止程序用到threading的Timer,也类...

Python对exe程序静默安装与卸载
方案一:直接套用脚本 为了实现静默安装,我们首先需要定义两个变量:setup_file(表示静默安装程序的路径)和install_path(表示安装程序的安装目录),并根据实际情况进行设置。接着,将静默安装程序的路径和参数放入cmd变量中,使用\/s参数执行静默安装,并使用\/D参数指定安装目录。随后,使用subprocess.run(...

python的.exe程序卡住不继续向下执行
进入任务管理器关闭不响应(即卡住的页面)的程序。按快捷键:CtrlAltDelete,在弹出的对话框找到任务管理器,单击进入任务管理器,点击应用程序,在任务窗口里面找到卡住的python的.exe程序,单击选中,点击右下角的结束任务。程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息...

python如何关闭一个已近打开的目录(文件夹)?
1、你应该是os.chdir(r"D:\\System")进去的,那就os.chdir()别的路径就行了。2、你是open了system目录下的文件,f.close()关闭文件就行了,目录不用管。3、你的python.exe在system目录下,这样系统自动回保护该目录不会被删除,关闭python进程,就可以删除改名了。

python 中如何按esc键退出正在运行的程序?
要看你在什么平台上运行Python的程序了 我知道的有如下:如果在putty.exe上 就是Ctrl + D;如果在IDLE上 就是Ctrl + C, 可能ESC也会有用;如果在pyscripter上 如果无限循环的东西基本在XP上就不能暂停了 只能强行把pyscripter用任务管理器关了 别的平台我没试过;...

python 怎么执行exe程序
可以使用空格分隔程序及多个参数。以下实例实现通过os.system()函数打开系统的记事本程序。>>> import os 使用os.system()函数打开记事本程序 >>> os.system('notepad')0 # 关闭记事本后的返回值 向记事本传递参数,打开python.txt文件 >>> os.system('notepad python.txt')

批处理文件如何隔一段时间让自身关闭?
比如说原批处理为: @echo off python.exe -a 把它改为: @echo off set timeout=10000 rem 设置超时时间为10000毫秒 echo wscript.sleep %timeout%>sl.vbs start python -a cscript \/\/nologo sl.vbs taskkill \/f \/im python.exe 这样,超时后,程序python.exe就会被强制结束 ...

python中3种调用可执行文件.exe的方法
方法一、os.system() 会保存可执行程序中的打印值和主函数的返回值,且会将执行过程中要打印的内容打印出来。import os main = "project1.exe"r_v = os.system(main)print (r_v )方法二、commands.getstatusoutput() 会保存可执行程序中的打印值和主函数的返回值,但不会将执行过程中要打印的...

python 关闭打开文件问题 新手
import osif os.path.exists('test.txt'): os.system('taskkill \/IM notepad++.exe')使用os模块,调用windows系统的taskkill命令,假设你打开test.txt的程序名字是notepad++.exe。

python调.bat,python程序打包成.exe运行时会弹出黑框,怎么调用能后台运 ...
我也遇到了这个问题,我是这样解决的。你用python调用.bat或者.exe文件时,一般调用 方式如下:os.system(被调用程序)对吧,这样就会因为调用了系统shell而出现黑框。我的解决方法是:os.popen(被调用程序)这样就把程序作为后台调用了,而且能根据popen的返回结果来获得程序的返回值。

相似回答