gpt4 book ai didi

Python - 函数无法在新线程中运行

转载 作者:太空宇宙 更新时间:2023-11-03 13:20:52 25 4
gpt4 key购买 nike

我正在尝试使用此函数终止 Windows 上的 notepad.exe 进程:

import  thread, wmi, os
print 'CMD: Kill command called'
def kill():
c = wmi.WMI ()
Commands=['notepad.exe']

if Commands[0]!='All':
print 'CMD: Killing: ',Commands[0]
for process in c.Win32_Process ():
if process.Name==Commands[0]:
process.Terminate()
else:
print 'CMD: trying to kill all processes'
for process in c.Win32_Process ():
if process.executablepath!=inspect.getfile(inspect.currentframe()):
try:
process.Terminate()
except:
print 'CMD: Unable to kill: ',proc.name

kill() #Works
thread.start_new_thread( kill, () ) #Not working

当我像这样调用函数时,它就像一个魅力:

kill()

但是当在新线程中运行该函数时它崩溃了,我不知道为什么。

最佳答案

import  thread, wmi, os
import pythoncom
print 'CMD: Kill command called'
def kill():
pythoncom.CoInitialize()
. . .

在线程中运行 Windows 函数可能很棘手,因为它通常涉及 COM 对象。使用 pythoncom.CoInitialize() 通常可以做到这一点。另外,您可能想看看 threading图书馆。它比线程更容易处理。

关于Python - 函数无法在新线程中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14428707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com