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

相关文章

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

使用Python绘制蛇年春节祝福艺术图

《使用Python绘制蛇年春节祝福艺术图》:本文主要介绍如何使用Python的Matplotlib库绘制一幅富有创意的“蛇年有福”艺术图,这幅图结合了数字,蛇形,花朵等装饰,需要的可以参考下... 目录1. 绘图的基本概念2. 准备工作3. 实现代码解析3.1 设置绘图画布3.2 绘制数字“2025”3.3

Jsoncpp的安装与使用方式

《Jsoncpp的安装与使用方式》JsonCpp是一个用于解析和生成JSON数据的C++库,它支持解析JSON文件或字符串到C++对象,以及将C++对象序列化回JSON格式,安装JsonCpp可以通过... 目录安装jsoncppJsoncpp的使用Value类构造函数检测保存的数据类型提取数据对json数

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

springboot整合 xxl-job及使用步骤

《springboot整合xxl-job及使用步骤》XXL-JOB是一个分布式任务调度平台,用于解决分布式系统中的任务调度和管理问题,文章详细介绍了XXL-JOB的架构,包括调度中心、执行器和Web... 目录一、xxl-job是什么二、使用步骤1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功

使用Nginx来共享文件的详细教程

《使用Nginx来共享文件的详细教程》有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用nginx来实现这个需求,本文将通过代码示例一步步教你使用... 在本教程中,我们将向您展示如何使用开源 Web 服务器 Nginx 设置文件共享服务器步骤 0 —

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min

使用Python绘制可爱的招财猫

《使用Python绘制可爱的招财猫》招财猫,也被称为“幸运猫”,是一种象征财富和好运的吉祥物,经常出现在亚洲文化的商店、餐厅和家庭中,今天,我将带你用Python和matplotlib库从零开始绘制一... 目录1. 为什么选择用 python 绘制?2. 绘图的基本概念3. 实现代码解析3.1 设置绘图画