博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
判断窗口是否挂起
阅读量:6159 次
发布时间:2019-06-21

本文共 1670 字,大约阅读时间需要 5 分钟。

// ishung.cpp (Windows 95/98/NT/2000)

//
// This example will show you how you can obtain the current status
// of the application.
//
//
// (c)1999 Ashot Oganesyan K, SmartLine, Inc
// , ,

#include <windows.h>

#include <stdio.h>

// User32!IsHungAppWindow (NT specific!)
//
// The function retrieves the status (running or not responding) of the
// specified application
//
// BOOL IsHungAppWindow(
//   HWND hWnd,        // handle to main app's window
// );
typedef BOOL (WINAPI *PROCISHUNGAPPWINDOW)(HWND);

// User32!IsHungThread (95/98 specific!)
//
// The function retrieves the status (running or not responding) of the
// specified thread
//
// BOOL IsHungThread(
//   DWORD dwThreadId, // The identifier of the main app's window thread
// );
typedef BOOL (WINAPI *PROCISHUNGTHREAD)(DWORD);

PROCISHUNGAPPWINDOW   IsHungAppWindow;
PROCISHUNGTHREAD   IsHungThread;

void main(int argc, char* argv[])
{
 if (argc<2)
 {
  printf("Usage:\n\nishung.exe hWnd\n");
  return;
 }

 HWND hWnd;

 sscanf(argv[1],"%lx",&hWnd);

 if (!IsWindow(hWnd))

 {
  printf("Incorrect window handle\n");
  return;
 }

 HMODULE hUser32 = GetModuleHandle("user32");

 if (!hUser32)
  return;

 IsHungAppWindow = (PROCISHUNGAPPWINDOW)

                                         GetProcAddress( hUser32,
                                                         "IsHungAppWindow" );

 IsHungThread = (PROCISHUNGTHREAD) GetProcAddress( hUser32,

                                                          "IsHungThread" );

 if (!IsHungAppWindow && !IsHungThread)

  return;

 OSVERSIONINFO osver;

 osver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
 if (!GetVersionEx(&osver))
  return;

 BOOL IsHung;

 if (osver.dwPlatformId&VER_PLATFORM_WIN32_NT)

  IsHung = IsHungAppWindow(hWnd);
 else
  IsHung = IsHungThread(GetWindowThreadProcessId(hWnd,NULL));

 if (IsHung)

  printf("Not Responding\n");
 else
  printf("Running\n");
}

转载地址:http://jqifa.baihongyu.com/

你可能感兴趣的文章
nginx日志中添加请求的response日志
查看>>
过去可忆,未来可期(随心录+杂记)
查看>>
css优先级和权重问题
查看>>
Django2.0中文文档
查看>>
猫狗分类--Tensorflow实现
查看>>
SilverLight4.0数据验证IDataErrorInfo, INotifyDataErrorInfo[转]
查看>>
编写css让一个已知宽高的div元素水平居中?垂直居中
查看>>
菲波拉契数列(传统兔子问题)
查看>>
纯数学教程 Page 325 例LXVIII (4) 比值判别法和达朗贝尔判别法失效的一种情形...
查看>>
《几何与代数导引》习题1.36.2
查看>>
数据库运维平台~慢日志模块设计
查看>>
对mysql的各种sql语句如何对表加锁的实验
查看>>
linux删除指定端口的进程
查看>>
JavaScript或jQuery中使用键盘控制对象运动
查看>>
oracle 12c 新特性之不可见字段
查看>>
SEO之网站页面优化策略
查看>>
js原生代码编写一个鼠标在页面移动坐标的检测功能,兼容各大浏览器
查看>>
[bzoj 2653][国家集训队]middle
查看>>
cas实现单点登录原理
查看>>
编译安装lnmp
查看>>