来源:按键学院   【按键精灵】

开开心心做设计,敲代码

顺顺利利调试运行,美滋滋的上万行代码,遛遛的通过了语法检查

咦,突然不动了......

卡……卡屏了么。。。窗口无响应。。。。程序停止运行。。。浏览器崩溃。。TMD在逗我。。

窗口无响应,卡屏,浏览器崩溃……一直是脚本作者们头疼的问题。大多数人在遇到无响应等问题的时候,如果是重要的数据只能选择等待,忍无可忍时强制关闭程序。可是,下一次遇到无响应问题该怎么办呢?如何一劳永逸解决这个头疼点呢?

知识拓展

疑问:为什么会出现卡屏、窗口无响应等情况呢?

电脑卡屏、窗口无响应的原因很多,针对脚本作者,可能有如下原因造成:

1. 硬件配置问题

如:硬盘坏道、cpu过热等等(扫描硬盘、检查CPU风扇)

还有可能是驱动不兼容问题(扫描显卡或其他驱动,判断是否是最适应的)

2. 内存消耗问题

程序运行时,消耗的内存太大,导致窗口无响应、卡屏等情况发生。(更换内存,加大内存)

3.  电脑机箱长期未清理

电脑机箱里面内存条进灰尘,拆开机箱,拆下内存条,清洁下内存金手指(用橡皮擦擦拭,或者用浸泡过酒精,拧干的湿布),重新装回去,就可能可以了。

解决方案:

'方案一:API

Private Declare Function IsHungAppWindow Lib "user32.dll" ( ByVal hWnd As Long) As Long

Hwnd = Plugin.Window.Find(0, "无")

TracePrint Hwnd

Do

If IsHungAppWindow(Hwnd)=0 Then

i=0'窗口正常,次数归零

TracePrint "窗口正常"

Else

i=i+1

If i = 60 Then'如果窗口未响应60次,就弹出窗口

MsgBox "窗口未响应"

End If

End If

Delay 1000

Loop

思路解析:以上方法通过调用系统win32的窗口通用控制类API:IsHungAppWindow,用来检测窗口是否为未响应。

通过要判断的窗口的句柄,进行IsHungAppWindow检测。若检测到窗口响应,则说明窗口正常响应,返回消息“窗口正常”。若检测到窗口无响应,则返回消息“窗口未响应”。

'方案二:发消息

'给程序发消息,得到回应则说明有响应

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Declare Function SendMessageTimeout Lib "user32" Alias "SendMessageTimeoutA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long, ByVal fuFlags As Long, ByVal uTimeout As Long, lpdwResult As Long) As Long

Cjb = FindWindow(vbNullString, 要检测进程窗体的标题名)

Qqq = SendMessageTimeout(Cjb, WM_NULL, 0, 0, SMTO_ABORTIFHUNG And SMTO_BLOCK, 3000, lngResult)

If Qqq = 0 Then

TracePrint "进程不正常"

else

TracePrint "进程正常"

end if

注:Cjb = FindWindow(vbNullString, 要检测进程窗体的标题名),这里需要用双引号输入要检测进程窗体的标题名,例如"按键精灵"。

思路解析:以上方法调用了2个系统API。

调用系统API:findwindow,该函数获得一个顶层窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数不查找子窗口。

调用系统API:SendMessageTimeout,该函数将指定的消息发送到一个或多个窗口。

通过给进程窗体发消息来判断窗口是否响应是否正常。若能检测到进程窗体的标题,则返回“进程正常”,若检测不到,则返回“进程不正常”。

注:Qqq = SendMessageTimeout(Cjb, WM_NULL, 0, 0, SMTO_ABORTIFHUNG And SMTO_BLOCK, 3000, lngResult)这里的3000是延迟时间,程序运行到这一段的时候,软件会有3s的延迟时间。这个参数的设置,大大们可以根据自己电脑的配置来进行设置哦。要是配置ok,反应迅速,500的延迟也就够了。

脚本开发教程分享:如何用按键精灵判断窗口是否无响应或卡屏呢相关推荐

  1. 脚本开发教程分享: 用按键精灵编写能俘获女神的弹出窗口命令

    作者 & 编辑:按键学院   [按键精灵] 你是不是对千篇一律的弹出窗口内容感到厌倦了呢? 那么现在就跟我一起来打造令人耳目一新的弹出窗口吧,从此你的脚本弹出窗口将会丰富多彩,与众不同. 首先 ...

  2. 脚本开发教程分享:用按键精灵脚本查询本机 IP 地址

    来源:按键学院   [按键精灵] 如果想在脚本中查询本机正在上网时的 内网IP 地址,可以使用如下脚本源码: VBSBegin Set obj = GetObject("winmgmts:\ ...

  3. 按键精灵_关于窗口无响应、卡屏状态的判断判定

    '方案一:API Private Declare Function IsHungAppWindow Lib "user32.dll" ( ByVal hWnd As Long) A ...

  4. 如何用按键精灵录制功能快速制作脚本

    简介: 按键精灵2014--简单游戏脚本免费制作开发工具,按键精灵论坛配有易学易懂的简单脚本开发教程,学习游戏脚本开发必备软件,教你怎么开发脚本,如何快速制作脚本.还有丰富的免费游戏脚本下载~ 工具/ ...

  5. 学编程脚本 android,Auto.js安卓免root脚本开发教程

    Auto.js安卓免root脚本开发教程 教程介绍 Auto.js是利用安卓系统的"无障碍服务"功能,实现类似于按键精灵一样,可以通过代码模拟一系列界面动作的辅助工作.与" ...

  6. autojs零基础入门视频教程,跟我学Auto.js Pro安卓免ROOT引流脚本开发教程,飞云脚本学院2019最新录制

    课程大纲(更新中-) 基础课程 [已完成]01安装Visual Studio Code(时长9分33秒)在线观看 [已完成]02安装Auto.js Pro(时长5分48秒)在线观看 [已完成]03解读 ...

  7. EasyClick脚本开发教程(6)获取抖音视频评论内容

    前言 在某些操作评论的业务中,需要取到评论内容,执行点赞.回复等操作. 这节来取评论内容. 实现过程 打开视频评论面板,获取节点信息. 以抖音13.7.0版本为例,这里面我们需要关注评论内容节点的两个 ...

  8. EasyClick脚本开发教程(7)抖音评论区指定概率随机点赞

    前言 这节来学习遍历点赞按钮,按照指定的概率来执行点赞动作. 如图,点赞按钮是一个小爱心.但是这个爱心是不能直接点击的,它的clickable值为false.我们点击它的兄弟组件,来完成点赞. 以抖音 ...

  9. 按键精灵 getcursorpos没有用_给你们想要的一键输出II按键精灵脚本开发教程

    按键精灵能为我们做什么 有人会说,按键精灵不就是代替我们按键盘嘛,当我们不玩的时候他替我们不停的按键盘,防止我们暂离掉线. 其实按键精灵能做的远远不止这些,按键精灵的脚本语言是基于VBS的,理论上VB ...

最新文章

  1. 一文看懂5G和AI融合的5个要点
  2. Linux下的格式化字符串漏洞利用姿势
  3. 《JAVA与模式》之单例模式
  4. Windows Phone中使用Local DataBase与ISolateStorage—在MVVM模式下(—)
  5. 机器学习笔记:线性判别分析(Fisher)
  6. 【Java5】String类,StringBuilder类,ArrayList类,Object类(toString,equals,hashCode)
  7. 欢迎您参加_ADT技术培训营
  8. php根据设备判断访问,PHP判断设备访问来源
  9. pet缩聚流程图_PET生产工艺流程分解.ppt
  10. 语音识别几成标配,哈弗F7的智能语音系统有何不同?
  11. 七牛云 rs.php 没有,设置了callbackUrl,七牛只是在客户端上打印了json格式的key和hash,居然没有按照设置跳转回来..怎么弄?...
  12. Microsoft JET Database Engine 错误 '80004005' 操作必须使用一个可更新的查询。问题解决办法
  13. 理解算法中的时间复杂度,O(1),O(n),O(log2n),O(n^2)
  14. BeagleBone Black 移植U-Boot (2 MLO、U-Boot)
  15. 计算机鼠标不出现在电脑屏幕上,电脑一打开就这样了,台式的,电脑屏幕不出现鼠标,求大神帮助...
  16. Python 模拟登录知乎
  17. 嵌套饼图设置不同的颜色
  18. linux操作系统培训_Linux 内容和工作定位
  19. 传奇GOM引擎登陆器配置教程 GOM登陆器配置详解 GOM引擎登陆器图文教程
  20. linux堆内存管理

热门文章

  1. pythonturtle怎么画_python中turtle可以画树吗?怎么画?
  2. Lua语言实现7种排序(冒泡排序,插入排序,选择排序,快速排序,归并排序,堆排序)
  3. Spring常用注解,注解 IOC ,AOP,MVC 的理解
  4. 紫光档案-企业档案管理中国十大问题分析
  5. 12/13号,父亲喝茶被茶叶卡住了
  6. 软件工程毕业设计课题(30)基于JAVA毕业设计JAVA校园失物招领系统毕设作品项目
  7. 静态时序分析 第二章 STA概念
  8. theano_Theano-快速指南
  9. Word导出PDF后,PDF没有生成Word中对应的目录以及书签大纲
  10. 小程序:rpx与px混合计算