就像进程管理器中的“正在运行”或者“无反应”
]
有高人提过可以检测进程所有的线程堆栈,但我不知如何做。
有比较好,直接点,稍为现实一点的方法吗?另外,怎么获得进程的CPU占用率?内存占用呢?最好是有ACE实现
这些在unix 下都好做。但WIN下就。
]
有高人提过可以检测进程所有的线程堆栈,但我不知如何做。
有比较好,直接点,稍为现实一点的方法吗?另外,怎么获得进程的CPU占用率?内存占用呢?最好是有ACE实现
这些在unix 下都好做。但WIN下就。
http://support.microsoft.com/kb/178893/zh-cn
How To Detect If an Application Has Stopped Responding
http://support.microsoft.com/kb/231844
304991 Detect if an Application Has Stopped Responding by Using C#
http://support.microsoft.com/kb/304991
304990 Detect if an Application has Stopped Responding by Using Visual Basic .NET
http://support.microsoft.com/kb/304990
是通过向该进程的窗口发送消息,视该消息在规定的时间内有无被响应来判断的
用 SendMessageTimeout 函数实现用该函数象窗口发送消息,在指定时间内消息没有被处理,就会超时,函数调用失败
通过Performance Counters(PSAPI)
这时任务管理器可以做到。但上面这些API都没法做到吧。
我把任务管理器反汇编了,找了老半天也只找到SendMessageTimeOut没找到其它,但它却是不行的。看来不是这个。只是我功力未够罢。
怎么才能用得上GetWindowModuleFileName?只包含winuser.h是编译通不过的。用loadLibrary,GetProcAddress又太麻烦。