我想编一个程序,它可以判断其它程序是处于"未响应"状态.前提是只知道那个程序的名称.

解决方案 »

  1.   

    http://www.vckbase.com/bbs/prime/viewprime.asp?id=334
      

  2.   

    SendMessageTimeout发消息,超时则认为无响应。
      

  3.   

    http://www.vckbase.com/bbs/prime/viewprime.asp?id=334
    这篇文章的作者怎么连没有公开的函数的知道?
      

  4.   

    用depends查看导出函数,然后在MSDN中搜索一下,没有就是没公开的.
      

  5.   

    根据程序名字,找到进程.
    hProc = GetModuleHandle(file_name);再找到进程的主窗口
    枚举顶层窗口,测试窗口的instance handle
    EnumWindows
    GetWindowLong(hWnd, GWL_HINSTANCE);向该窗口发测试响应的消息:
    SendMessageTimeout(hWnd, WM_NULL, 0 ,0, SMTO_NORMAL, 15000);
    如果返回 0. 检测GetLastError() == 0,表示该窗口超时没响应.