Microsoft SPY++ 使用教程及实操

2024-04-24 02:28

本文主要是介绍Microsoft SPY++ 使用教程及实操,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Spy++介绍

Spy++ (SPYXX.EXE) 是一个基于 Win32 的实用工具,提供系统进程、线程、窗口和窗口消息的图形视图。

Spy++ 有两个版本

第一个版本,名为 Spy++ (spyxx.exe),用于显示发送到在 32 位进程中运行的窗口的消息。 例如,在 32 位进程中运行的 Visual Studio。 因此,可以使用 Spy++ 来显示发送到“解决方案资源管理器” 中的消息。 由于 Visual Studio 中大多数生成的默认配置都是在 32 位进程中运行的,因此如果已安装所需组件,则第一个版本的 Spy++ 就是在 Visual Studio 中的“工具”菜单上可用的那一个。

第二个版本,名为 Spy++(64 位)(spyxx_amd64.exe),用于显示发送到在 64 位进程中运行的窗口的消息。 例如,在 64 位操作系统上,记事本在 64 位进程中运行。 因此,可以使用 Spy++(64 位)来显示发送到记事本的消息。

如果要监控的程序是64位的就用spyxx_amd64.exe,32位的就用spyxx.exe

注意:spyxx.exe无法监控64位程序的消息日志,spyxx_amd64.exe也无法监控32位程序的消息日志。

工具如何获取呢?

如果你已经安装了Visual Studio,那么可以在…\Visual Studio 安装文件夹\Common7\Tools下找到该工具。

没有安装Visual Studio,只想要独立的Spy++工具,点击下载:https://download.csdn.net/download/huang1600301017/89213010。

实操

实操1:消息监控

运行spyxx_amd64.exe 点击监视-消息日志,快捷键(ctrl+m)。使用查找程序工具,鼠标按住这个图标,拖动到要监控的窗口,这里是记事本。松开鼠标后,选定的对象里显示相关参数。选项卡点击 消息,选择要查看的消息。这里点击全部清除,消息组里点击键盘,然后点击确认,现在在记事本里用键盘输入,就能看到消息日志了。右键-记录选项,可以重新选择要监控的选项。

实操2:查找父窗口或子窗口

spyxx_amd64.exe打开后默认显示所有运行的窗口,点击工具栏中查找窗口工具(ctrl+f),也可以通过(搜索->查找窗口->查找程序工具)。同样方法定位窗口,点击确定,同步,关闭,现在主界面中已经定位到了该窗口的位置,可以看到其父窗口和子窗口。因为有时我们通过鼠标定位到窗口是子窗口,可能无法监控到全部消息,所以要找到它的根窗口,直接监控根窗口。鼠标点击要监控的根窗口,然后按下ctrl+m打开日志消息,选择要监控的选项后确认。
                        

实操3:

windows通信,我们通常需要获取窗口的类名,怎么获取呢?通过查找程序工具(ctrl+f),拖动查找程序工具到指定窗口,界面上就会显示该窗口的信息,包括类名

消息通信

WM_CLOSE

用于通知窗口关闭的请求。当系统或者应用程序需要关闭某个窗口时,会向该窗口发送 WM_CLOSE 消息,让窗口做出相应的关闭操作。通常情况下,接收到 WM_CLOSE 消息的窗口会执行关闭操作,例如释放资源、保存数据等,然后关闭自身。

WM_COMMAND

通常用于向窗口发送命令消息。在 Windows 应用程序中,用户交互通常通过用户界面元素(例如按钮、菜单项等)来触发各种操作。当用户点击按钮或选择菜单项时,窗口会收到 WM_COMMAND 消息,以便执行相应的操作。WM_COMMAND 消息携带着一些参数,其中包括标识用户动作的命令 ID,以及用于标识发送命令的控件或菜单的句柄。

wParam参数:该参数的低位字节指示了事件源的标识符,即命令 ID(Command ID),它标识了发送命令的控件或菜单项。高位字节通常为零。

lParam参数:该参数是一个指向控件或菜单项的窗口句柄(HWND)的指针。如果消息是由一个菜单项发送的,则 LPARAM 参数是 NULL。

因此,当接收到 WM_COMMAND 消息时,你可以通过解析 WPARAM 和 LPARAM 参数来确定事件源的命令 ID 和控件句柄,从而执行相应的操作。

#include <windows.h>
#include <stdio.h>
int main()
{// 根据窗口类名"Notepad" 找到记事本窗口的句柄HWND hwndNotepad = FindWindow("Notepad", NULL);if (hwndNotepad == NULL){printf("记事本窗口未找到\n");return 1;}// 发送保存内容消息 后面2个参数就是spy++日志消息中的 wParam 和 lParamSendMessage(hwndNotepad, WM_COMMAND, 0x00000003, 0);// 发送关闭窗口消息SendMessage(hwndNotepad, WM_CLOSE, 0, 0);puts("The End!");return 0;
}
//此代码来源于网络

这篇关于Microsoft SPY++ 使用教程及实操的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/930527

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti