当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

<b>软件看门狗:别让你的程序没有呼应</b>[VC/C++编程]

赞助商链接



  本文“<b>软件看门狗:别让你的程序没有呼应</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

一.概述

一些重要的程序,必须让它一向跑着;并且还要不时关心它的状况——不能让它呈现死锁现象.当然,假如一个主程序会呈现死锁,必定是计划大概编程上的失误.我们主要做的事是,把这个Bug揪出来.但假如时间紧急,这个Bug又“飘忽不定”,那么,我们还是先写一个软件“看门狗”,暂时应一下急吧.

“看门狗”的需求描写:“看门狗”的运行不呈现界面窗口,具有一定的躲藏性;按时判断目标进程能否运行在当前系统中,假如没有则启动目标进程;判断目标进程能否“没有呼应”,假如是则终止目标进程;假如目标进程“没有呼应”的次数超越一定的数目,则将计算机系统重启.

二.预备知识

首先要介绍两个主要的函数,可以判断目标进程能否“没有呼应”.在User32.dll中(没有文档公开),Win2k/NT下的IsHungAppWindow和Win9X下的IsHungThread;前者是以一个窗口句柄作为参数,后者是以线程ID作为参数.我们可以通过VC开辟工具的Depends查到这两个函数.

要利用这两个函数,我们必须先动态导入,以下:

if (m_hUser32 == NULL)
{
   m_hUser32 = GetModuleHandle("USER32.DLL");
}
if (m_hUser32)
{
   m_IsHungNT = (HUNG_FUNNT) GetProcAddress(m_hUser32, "IsHungAppWindow");
   m_IsHung9X = (HUNG_FUN9X) GetProcAddress(m_hUser32, "IsHungThread");
}

别的,还有以下知识点:

1.  若何让窗口躲藏(当然通过Windows任务管理器还是可以看到的)

在框架窗口类的PreCreateWindow中改正窗口吻概,以下:


  以上是“<b>软件看门狗:别让你的程序没有呼应</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .