栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何通过名称查找进程并使用ctypes杀死进程?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何通过名称查找进程并使用ctypes杀死进程?

尝试这个:

import sys, os.path, ctypes, ctypes.wintypesPsapi = ctypes.WinDLL('Psapi.dll')EnumProcesses = Psapi.EnumProcessesEnumProcesses.restype = ctypes.wintypes.BOOLGetProcessImageFileName = Psapi.GetProcessImageFileNameAGetProcessImageFileName.restype = ctypes.wintypes.DWORDKernel32 = ctypes.WinDLL('kernel32.dll')OpenProcess = Kernel32.OpenProcessOpenProcess.restype = ctypes.wintypes.HANDLETerminateProcess = Kernel32.TerminateProcessTerminateProcess.restype = ctypes.wintypes.BOOLCloseHandle = Kernel32.CloseHandleMAX_PATH = 260PROCESS_TERMINATE = 0x0001PROCESS_QUERY_INFORMATION = 0x0400count = 32while True:    ProcessIds = (ctypes.wintypes.DWORD*count)()    cb = ctypes.sizeof(ProcessIds)    BytesReturned = ctypes.wintypes.DWORd()    if EnumProcesses(ctypes.byref(ProcessIds), cb, ctypes.byref(BytesReturned)):        if BytesReturned.value<cb: break        else: count *= 2    else:        sys.exit("Call to EnumProcesses failed")for index in range(BytesReturned.value / ctypes.sizeof(ctypes.wintypes.DWORD)):    ProcessId = ProcessIds[index]    hProcess = OpenProcess(PROCESS_TERMINATE | PROCESS_QUERY_INFORMATION, False, ProcessId)    if hProcess:        ImageFileName = (ctypes.c_char*MAX_PATH)()        if GetProcessImageFileName(hProcess, ImageFileName, MAX_PATH)>0: filename = os.path.basename(ImageFileName.value) if filename == 'notepad.exe':     TerminateProcess(hProcess, 1)        CloseHandle(hProcess)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/652712.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号