社区
Windows SDK/API
帖子详情
Windows下怎么通过代码判断一个进程真的彻底没响应了?
Tugangw2000
2017-01-12 01:52:42
问一个难倒所有编程高手的问题:Windows下怎么通过代码判断一个进程真的彻底没响应了?
...全文
1264
18
打赏
收藏
Windows下怎么通过代码判断一个进程真的彻底没响应了?
问一个难倒所有编程高手的问题:Windows下怎么通过代码判断一个进程真的彻底没响应了?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Tugangw2000
2017-02-20
打赏
举报
回复
是问题不够明确?
Tugangw2000
2017-02-16
打赏
举报
回复
真没想到就这么一个问题竟能难倒全天下的英雄好汉,各IT大侠
santiaodahan
2017-02-16
打赏
举报
回复
这恐怕已经不是一个实际程序问题了。最近看到一个技术论坛上有人提了一个问题:怎样创建一个能被所有语言调用的dll,结果被编辑关闭了。原因是它不是一个具体问题,它含糊不清、过于宽泛、不完整。 一个有辨别力的问题应该有边界和可证伪性,并且是可验证的和操作主义的。所以应该先理清概念,构造出需要解决的那个具体问题情景。
Tugangw2000
2017-02-14
打赏
举报
回复
确实有一定难度,但我相信是有办法的
santiaodahan
2017-02-08
打赏
举报
回复
引用 12 楼 Tugangw2000 的回复:
进程ID不存在了还好说,但要是进程ID存在实际进程已无响应,这个才是本帖所要解决的问题。
你构造出了上面两种方式都误判的情景了?你认为无响应的边界在哪里?比如超时时间,无反馈消息或返回结果。
Tugangw2000
2017-02-08
打赏
举报
回复
给线程做一个心跳。心跳停了,它也就死了 这个不知具体实现方法,是不是要给受控线程发心跳包?不是烦请细说一下
Tugangw2000
2017-02-08
打赏
举报
回复
进程ID不存在了还好说,但要是进程ID存在实际进程已无响应,这个才是本帖所要解决的问题。
不得闲
2017-02-07
打赏
举报
回复
枚举进程,获得进程ID,WaitForSingleObject不断的判定进程是否存在
lyhoo163
2017-02-06
打赏
举报
回复
给线程做一个心跳。心跳停了,它也就死了。
雄牛
2017-02-06
打赏
举报
回复
用这个IsHungAppWindow
santiaodahan
2017-01-20
打赏
举报
回复
这两种方式都是MSDN提到的,是比较简洁的。响应不响应的界限不是那么泾渭分明,如果有误判就得分多种情况,临界值需要自己调。软件都是不断更新发展的,没那么多一劳永逸的法。判断连接是不是响应,直接去连接判断返回值是最简便的方法。
Tugangw2000
2017-01-20
打赏
举报
回复
SendMessageTimeout 函数发送WM_NULL消息可能会误判
Tugangw2000
2017-01-20
打赏
举报
回复
还有别的方法吗?
Tugangw2000
2017-01-20
打赏
举报
回复
但不可能每个程序都配一个狗
wywry
2017-01-20
打赏
举报
回复
若都是自己写的程序,做个看门狗;狗不叫,就死掉!
Tugangw2000
2017-01-19
打赏
举报
回复
就是不响应连接了,或者无法切换到并正常显示软件界面
santiaodahan
2017-01-19
打赏
举报
回复
可以使用Windows API函数: IsHungAppWindow (user32.dll),判断应用程序是否响应。不过,MSDN提示此函数可能会在后续版本中更改或删除,最好做好判断。 SendMessageTimeout 函数发送WM_NULL消息也可以判断窗口是否响应。
日立奔腾浪潮微软松下联想
2017-01-12
打赏
举报
回复
先定义没响应的概念...
Windows
进程
常用DLL模块注入技术
课程结合多种
Windows
进程
常用DLL注入技术。远程线程注入APC注入,异步调用过程,向目标线程插入待执行任务从而完成注入。窗口消息注入,指定窗口
进程
注入,与全局钩子注入类似。环境块注入,获取
进程
上下文信息,直接性修改程序执行流程完成注入。
进程
入口点注入,在程序初始化的时机前将dll模块文件注入至目标主线程。
进程
调试级注入,涉及调试器相关功能调用知识点dll模块重定位内存注入,模拟操作系统加载PE文件方式,直接将dll文件内存数据写入目标
进程
并执行。导入表注入,涉及PE相关知识点,增加区段,移动导入表,增加导入表、增加导出函数,修复表项数据等。内核驱动级Dll模块注入技术,内核驱动入门扩展。
[入门篇]Linux操作系统fork子
进程
的创建以及
进程
的状态 超超超详解!!!我不允许有人错过!!!
0.前言1.fork()创建子
进程
讲解1.1fork()的简单介绍1.2 创建子
进程
详解1.2.1 如何理解fork创建子
进程
1.2.2 子
进程
的PCB以及子
进程
的
代码
和数据1.2.3为什么要共享&&写时拷贝1.2.4 什么时候发生写时拷贝1.3 fork函数返回值详解1.3.1引入fork返回值的作用1.3.2 fork返回执行逻辑剖析1.3.3 小问题补充2.
进程
状态2.1
进程
状态引入2.2 初识
进程
中的状态2.3 R状态解析2.4 S状态解析2.4.1 S状态的具体表现2.4.2 CPU视角下的
进程
Linux多任务编程之
进程
(二)
Linux多任务编程之
进程
(二)1.
进程
概念1.1单道、多道程序设计(了解)1.2.并行和并发(理解)1.3.
进程
控制块PCB(了解)2.
进程
的状态3.
进程
号3.1.getpid函数3.2.getppid函数3.3.getpgid函数3.2.参考
代码
4.fork创建
进程
4.1.fork出来的子
进程
和父
进程
之间的关系4.2.参考
代码
5.回收子
进程
资源5.1.wait函数5.2.waitpid函数6.僵尸
进程
孤儿
进程
守护
进程
6.1.僵尸
进程
6.2.孤儿
进程
6.3.守护
进程
7. vfork创建
进程
7.1参考
代码
8
进程
/线程/协程/多
进程
/多线程应用场景/线程切换/
进程
切换/内核栈和用户栈切换/线程的工作内存
为什么会有线程? 在网络或多用户换机下,
一个
服务器通常需要接收大量不确定数量用户的并发请求,为每
一个
请求都创建
一个
进程
显然行不通(系统开销大
响应
用户请求效率低),因此操作系统中线程概念被引进。
进程
:是并发执行的程序在执行过程中分配和管理资源的基本单位,是
一个
动态概念,竞争计算机系统资源的基本单位。 线程:是
进程
的
一个
执行单元,是
进程
内科调度实体。比
进程
更小的独立运行的基本单位。线程也被称为轻量级
进程
。
一个
程序至少
一个
进程
,
一个
进程
至少
一个
线程。
进程
线程的区别: 地址空间:同一
进程
的线程共享本
进程
的地址
Linux
进程
控制
进程
概念:
windows
上面运行的各种软件和开发的程序运行起来我们叫把程序跑起来,而程序的本质就是
进程
,所以专业的叫法是
进程
跑起来而不是程序跑起来,打开
windows
下面的任务管理系统上看到的程序其实都是
进程
。 cpu对
进程
的处理有个规定:每个
进程
都有
一个
固定的运行时间周期,一旦过了这个周期那么这个
进程
就被结束不管你跑
没
跑完,如果
没
跑完会有个程序计数器会存储地址,这样下次再跑这个
进程
就不会重头跑而是在结束前的位置继续跑。 而为什么有这个规定呢?其实原因很简单就像你去医院看病,得到前台挂号排队因为医生有限
Windows SDK/API
1,183
社区成员
22,335
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章