參考**:
python語言: windows平台下如何用python殺程序
#from :
# "這段**來自於乙個很簡單的場景:
# 在python中調乙個程式。給這個程式設定乙個timeout
# 假如一段時間程式還沒有返回,就殺掉這個這個新開的程序。
# 本來以為我肯定不是第乙個遇到這個問題的人,
# 但是網上搜了好久都沒找到完整的辦法,自己搞了乙個。"
import ctypes
import sys
class processentry32(ctypes.structure):
_fields_ = [("dwsize", ctypes.c_ulong),
("cntusage", ctypes.c_ulong),
("th32processid", ctypes.c_ulong),
("th32defaultheapid", ctypes.c_ulong),
("th32moduleid", ctypes.c_ulong),
("cntthreads", ctypes.c_ulong),
("th32parentprocessid", ctypes.c_ulong),
("pcpriclassbase", ctypes.c_ulong),
("dwflags", ctypes.c_ulong),
("szexefile", ctypes.c_char * 260)]
def getproclist():
createtoolhelp32snapshot = ctypes.windll.kernel32.createtoolhelp32snapshot
process32first = ctypes.windll.kernel32.process32first
process32next = ctypes.windll.kernel32.process32next
closehandle = ctypes.windll.kernel32.closehandle
pe32 = processentry32()
pe32.dwsize = ctypes.sizeof(processentry32)
if process32first(hprocesssnap,ctypes.byref(pe32)) == false:
print >> sys.stderr, "failed getting first process."
return
while true:
yield pe32
if process32next(hprocesssnap,ctypes.byref(pe32)) == false:
break
closehandle(hprocesssnap)
def getchildpid(pid):
proclist = getproclist()
for proc in proclist:
if proc.th32parentprocessid == pid:
yield proc.th32processid
def killpid(pid):
childlist = getchildpid(pid)
for childpid in childlist:
killpid(childpid)
handle = ctypes.windll.kernel32.openprocess(1, false, pid)
ctypes.windll.kernel32.terminateprocess(handle,0)
if __name__ =='__main__':
args = sys.argv
if len(args) >1 :
pid = int(args[1])
killpid(pid)
else:
proclist = getproclist()
for proc in proclist:
print proc.szexefile+' '+str(proc.th32parentprocessid) + ' '+str(proc.th32processid)
#----------------------
## usage demo
##----------------------
import subprocess
import time
#import winproc
timeout = 2
process = subprocess.popen("cmd /k ping localhost -t",shell = true)
start = int(time.time())
while process.poll()==none:
now = int(time.time())
if int (now - start) >timeout:
pid = process.pid
break
winproc.killpid(pid)
print "end"
Windows平台下安裝NLTK
在網上找了一圈,沒找到幾個靠譜的安裝流程,在上找到各平台下安裝流程 windows平台 以下操作假定你的機器上還沒有安裝python,如果你已經安裝python,請跳過最後一步,只需要安裝nltk。32位二進位製版安裝 1.安裝python 選擇2.7.3版本。2.安裝numpy 可選 3.安裝nl...
Lua Socket在Windows平台下的使用
lua的乙個比較實用的拓展庫 lua socket 在windows 下平台的使用。在網上檢視了許多關於lua socket的安裝,發現大部分都是在 linux 下的安裝,關於在 windows 平台下的使用說明很少,而且發現問題挺多。本文將介紹乙個極其簡單的方式介紹 lua socket 在win...
Windows平台下eclipse配置
安裝 go 環境 環境變數配置 對 go 的環境變數進行配置,有些安裝是預設配置,有些需要手動的配置環境變數。go 環境驗證,在控制台中輸入 go version,如顯示以下內容,則表示輸入成功。安裝環境 201606061100 platformruntime 安裝配置 mingw64 mingw...