pywin32实践 判断程序窗口是否失去响应
发布日期:2022-03-03 10:44:13
浏览次数:6
分类:技术文章
本文共 1447 字,大约阅读时间需要 4 分钟。
有时候windows程序会出现”卡死”的情况,在任务管理器中一目了然。那么问题来了,万一程序在后台或者远程运行,要如何知道程序是否未响应呢?这里分享一个利用pywin32的实现方法。
获取windows窗口对应的进程ID
hWndList = []# 获取窗口句柄win32gui.EnumWindows(lambda hWnd, param: param.append(hWnd), hWndList)# 迭代for hWnd in hWndList: # 获取窗口句柄对应的线程ID和进程ID threadId, process_id = win32process.GetWindowThreadProcessId(hWnd) print(threadId, process_id)
获取进程名和进程ID
# instance表示进程实例(可重名)junk, instances = win32pdh.EnumObjectItems(None, None,'process', win32pdh.PERF_DETAIL_WIZARD)proc_ids=[]proc_dict={}for instance in instances: if instance in proc_dict: proc_dict[instance] = proc_dict[instance] + 1 else: proc_dict[instance]=0for instance, max_instances in proc_dict.items(): for inum in range(max_instances+1): hq = win32pdh.OpenQuery() path = win32pdh.MakeCounterPath( (None,'process',instance, None, inum,'ID Process') ) counter_handle=win32pdh.AddCounter(hq, path) win32pdh.CollectQueryData(hq) type, val = win32pdh.GetFormattedCounterValue(counter_handle, win32pdh.PDH_FMT_LONG) proc_ids.append((instance,str(val))) win32pdh.CloseQuery(hq) proc_ids.sort()
判断窗口是否未响应
# 迭代进程IDfor i in range(0, len(sys_ids)): # 匹配进程ID和进程名 if(sys_ids[i] == process_id and process_name == proc_names[i]): # 判断窗口状态 status = checkStatus(hWnd) status_list.append(status)status_code = -1if(len(status_list)>=1): status_code = set(status_list).pop()
部分代码来自网络,欢迎讨论。
转载地址:https://blog.csdn.net/yangjiegang8/article/details/78169466 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年03月09日 17时37分58秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
华为博士招聘上机考试题目_牛客网-华为-2020届校园招聘上机考试-3
2019-04-21
python中for可以做变量名吗_Python中使用动态变量名的方法
2019-04-21
mysql 日期转换天数_MySQL 日期操作 增减天数、时间转换、时间戳
2019-04-21
java对象去重复_JAVA中List对象去除重复值的方法
2019-04-21
java bss_[转] .bss段和.data段的区别
2019-04-21
java上传图片损坏_大神求助 上传图片后 图片损坏
2019-04-21
java socket唯一标识符_Java Socket编程之常识网络基础知识
2019-04-21
java给xyz大小排序_java递归实现string xyz排序
2019-04-21
arctime必须要java_Arctime使用教程 Arctime常见问题解答
2019-04-21
mysql 自适应字段宽度_box-sizing解决自适应布局容器宽度问题
2019-04-21
java 配置文件配置路径_Java读取配置文件路径设置
2019-04-21
vux 选择器_vue中的scoped分析以及在element-UI和vux中的应用
2019-04-21
java实验一目的_Java实验报告(实验一)
2019-04-21
php 内存泄露检测工具,php - 诊断内存泄漏 - 允许#bytes的内存大小耗尽
2019-04-21
Java 去除空格获取文件路径
2019-04-21
python 批量修改文件名称去除文件名中空格
2019-04-21
python 将文件名写入 txt文件
2019-04-21