Spy++的使用方法
很多朋友都对窗口句柄比较迷糊,这篇短文就以spy++这个软件为主,介绍下窗体句柄和使用按键插件时
,如果对这个句柄发送消息,即所谓的后台挂机。
spy++这个软件来自VC++,装好VC后,就可以在工具中看到。
我们以“记事本”为例,看看如果给记事本发送按键消息。
首先启动记事本
随后启动SPY++
使用spy++的查找功能
点开后的效果
我们把黑色准星拖动到记事本窗体上
然后点击“确定”,看到了SPY++已经显示了下图红色的内容。
这三个句柄从上到下依次是:
记事本的主句柄
文字输入框的句柄
状态栏的句柄
我们要给记事本发送按键消息,就要选对发送对象(句柄),这里显然,我们要发送给“文字输入框”。我们双击“文字输入框”这里,可以看到“窗口标题”、“窗口大小”、“窗口位置”等信息。点击“类”选项卡,查看下类名是什么,代码里需要类名做参数
好了,基本的数据都有了,下面给出的代码:
- //打开记事本
- VBSCall RunApp("notepad.exe")
- //等待记事本完全打开
- Delay 100
- //得到当前窗口句柄
- dim hwnd
- Plugin hwnd=Window.Foreground()
- //查找当前窗口下的子句柄
- dim edithwnd
- Plugin edithwnd=Window.FindEx(hwnd,0,"Edit",0)
- //发送字符串消息
- Plugin Window.SendString(edithwnd, "看我发送字符串消息")
- //发送回车
- Plugin Window.SendKeyDown(edithwnd,13)
- //发送键盘消息
- Plugin Window.SendKeyDown(edithwnd,asc("1"))
Spy++的使用方法相关推荐
- Spy++的使用方法及下载
很多朋友都对窗口句柄比较迷糊,这篇短文就以spy++这个软件为主,介绍下窗体句柄和使用按键插件时 ,如果对这个句柄发送消息,即所谓的后台挂机. spy++这个软件来自VC++,装好VC后,就可以在工具 ...
- jasmine.spy对象的and.returnValue方法单步调试
都已经是被spy之后的方法了: CallTracker.track就是把调用上下文放到一个calls数组里: delegate给strategy: 真正的执行体: 返回一个Observable对象: ...
- SPY++ 学习总结
spy++使用方法 分步阅读 spy++ 是微软 Visual Studio 编译器自带的一款工具.它可以显示系统对象(包括进程.线程和 窗口)之间关系的图形树,搜索指定的窗口.线程.进程或消息, 查 ...
- Visual Studio 2019 (VS2019)安装Spy++工具
Visual Studio 2019 ()VS2019)安装Spy++工具 Microsoft Spy++是一个非常好的查看Windows操作系统的窗口.消息.进程.线程信息的工具,简单易用,功能强大 ...
- mock与spy的区别
mock与spy的区别 1. mock 1.1 mock对象的方法不执行具体逻辑 1.2 使用方法打桩返回给定数据 1.3 mock如何执行具体逻辑? 2. spy 2.1 spy对象的方法执行具体逻 ...
- android mock测试资源,Android 单元测试 --Mock 及 Mockito
以前我在 Mock 概念 所谓的 Mock 就是创建一个类的虚假的对象,在测试环境中,用来替换掉真实的对象,主要提供两大功能: 验证这个对象的某些方法的调用情况,调用了多少次,参数是什么等等 指定这个 ...
- 单元测试源码分析之一创建mock对象
之前已经介绍过Mockito和PowerMock的常见用法,PowerMock其实就是在Mockito的基础上使用了字节码技术使得其可以对静态方法,私有方法等进行插桩. 现在就先来看看Mockito是 ...
- Angular单元测试框架里API toHaveBeenCalledTimes的工作原理
看这样一段代码: let spiedFirstFocusable = spyOn(keyboardFocusService,'findFirstFocusable').and.returnValue( ...
- Angular jasmine单元测试框架spied method的调用记录数据结构
基于UnknownErrorHandler的handleError方法创建一个spy 方法: 第40行调用的是spied之后的新方法: 因为调用的是Spied之后的wrapper方法,在wrapper ...
最新文章
- 视频监控成AI芯片主战场,海康威视和大华股份占据半壁江山
- 【 MATLAB 】MATLAB 实现模拟信号采样后的重建(二)零阶保持(ZOH)
- linux日志中显示skipping,linux推荐使用logrotate自动管理日志文件
- java 数据排序需求分析_java 实现数组全排序
- python 换脸 github_人脸识别和换脸相关深度学习开源项目github汇总
- 前端学习(3104):react-hello-虚拟dom的两种创建方式
- python求组合数c_科学网—Python 组合函数 C(n,m) - 杨玠的博文
- Spring Security:基于内存的角色授权
- pythonenumapi_python模块之enum_上
- linux之秘钥登录
- MacBook 键盘出现故障,如何修复?
- 【晒出你的第83行代码】跬步千里,十二年的老代码更是技术的沉淀!
- Catalent康泰伦特上海外高桥临床供应中心扩建温控产能;富士胶片发布2021财年第三季度财报 | 医药健闻...
- matlab 空间向量的夹角,空间两向量之间的旋转角如何求?角度范围在0-360°
- Windows快捷键
- iOS - 递归遍历文件夹下的所有文件
- 斐波拉契数列 java实现
- 数据结构与算法——19. 散列函数设计方法
- 最终酬劳高达7.5亿美元,库克是功成身退还是潦草收场?
- 【深度之眼cs231n第七期】笔记(四)
热门文章
- 大专计算机网络信息安全工资,网络信息安全工程师工资待遇分析报告 - 职业圈...
- 价格贵上市迟:开发者对谷歌眼镜失去兴趣
- Google Glass终于像眼镜了
- 提权,远控生成器,查看浏览器缓存,xp密码破解
- File.createNewFile和 File.createTempFile比较和区别
- File类createNewFile与createTempFile的区别
- godaddy长期有效的优惠码,每单优惠1美金,无金额限制。
- GoDaddy优惠码
- 清理linux缓存及临时文件,【小知识】缓存和临时文件
- Aso主要影响因素有哪些?