Windows GUI代码与Windows消息问题调试利器
Windows GUI代码与Windows消息问题调试利器
记得很久前有这么一种说法: 人类区别于动物的标准就是工具的使用。同样在软件开发这个行业里面,对于工具的使用也是高手和入门级选手的主要区别,
高手往往靠工具的使用在关键的时候打开局面,在适当的时候使用适当的工具就往往可以事半功倍。
首先让我们来讨论如下两个简单的问题。
1. 如果你写的一个软件出了一个问题,这个问题只有在关闭程序的时候出现,你怎么调试呢?
2. 如果你写的一个软件出了一个问题,这个问题只有在关闭机器的时候出现,你怎么调试呢?
3. 如果你写的一个软件出了一个问题,你怀疑可能是这个程序消息处理有问题,你怎么调试呢?
3. 如果你写的一个软件出了一个问题,你怀疑可能是这个程序的资源文件属性可能有问题,你怎么调试呢?
你不会真的想一次一次的去重启电脑来重现问题吧?呵呵..
对于这些问题我首先想介绍的是SPY++, 这个伴随Visual Studio多个版本的工具其实很多人并没有很好的利用,更有甚者竟然还造轮子,
不是说不可以造轮子,如果你因为不知道有这个东西去造轮子,我就要鄙视你了,呵呵,不要瞧不起Visual Studio自带的工具,他们往往可以干很多NB的事,只是你可能
还不太会用。
不多说了,下面上图,打开spy++ 将查找窗口的小圆圈拖拽到你感兴趣的小圆圈上面去,选择属性,你可以看到所有有关这个窗口的属性,选择消息,你就可以捕获到这个
窗口接收到的所有的消息,对于消息相关的问题,消息的追踪,资源属性问题的调试,说SPY++是神器,一点都不为过。

虽然SPY++对于消息的捕获称的上是神器,但是他有一个功能的缺失,他只能捕获消息,不能给窗口发消息,这对于很多问题的模拟和分析就很是不方便
于是有了下面一个我要介绍的工具: SendMessage, 是个open source的小工具,你可以从下面的链接下载:
http://sourceforge.net/projects/stefanstools/files/SendMessage/

SendMessage这个小工具的使用方法和SPY++特别像,所以说他们配合在一起使用也就是水到渠成的事,通过这个工具选择某个窗口,
你可以对这个窗口send message, post message, 直接选择不同时期的消息进行发送,包括关机前才会有系统发出的消息模拟。
小节
通过对这两个小工具的介绍,我相信开篇的几个问题读者已经有了答案,但是我还是想说的是,作为软件工程师,遇到问题千万不要蛮干,
对的时候使用对的工具太重要了,否则就算你加再多的班也是徒劳,希望对大家有所帮助,兄弟们加油!
Windows GUI代码与Windows消息问题调试利器的更多相关文章
- 体验Code::Blocks下的Windows GUI编程(32 bit and 64 bit)
0. 前言 不知道为什么,几乎所有的C++编程教程都是从命令行版(控制台应用程序)的Hello World开始的.然而,对于现在的年轻人来说,从小就用鼠标点击窗口或图标操作电脑,对于那个神秘黑色的窗口 ...
- 用Nim语言开发windows GUI图形界面程序
前言 本文得到了“樂師”的大力支持, 我们一起调试程序到深夜,要是没有他的帮忙, 我不知道要多久才能迈过这道坎, 另外“归心”还有其他人也提供了帮助, 他们都来自于QQ群:“Nim开发集中营”4693 ...
- 关于 OnCloseQuery: 顺序、不能关机等(所有的windows的广播消息都是逐窗口传递的)——如果一个窗体的OnCloseQuery事件中如果写了代码那么WM_QUERYENDSESSION消息就传不过去了msg.result会返回0,关机事件也就停止了
系统关闭窗体的事件顺序为: OnCloseQuery ----> OnClose ----> OnDestroy 下面的代码说明问题: unit Unit3; interface uses ...
- 【转】深入Windows内核——C++中的消息机制
上节讲了消息的相关概念,本文将进一步聊聊C++中的消息机制. 从简单例子探析核心原理 在讲之前,我们先看一个简单例子:创建一个窗口和两个按钮,用来控制窗口的背景颜色.其效果 图1.效果图 Win32 ...
- 如何实现Windows Phone代码与Unity相互通信(事件方式)
源地址:http://www.cnblogs.com/petto/p/3909063.html 一些废话 昨天写一篇今天写一篇.不是我闲的蛋疼,是今天一天碰到了好几个恼人的问题,浪费一天时间搞定.本文 ...
- Python GUI编程(Tkinter) windows界面开发
Python实现GUI简单的来说可以调用Tkinter库,这样一般的需求都可以实现,显示简单的windows窗口代码如下: python_gui.py 1 #!C:\Python27\python.e ...
- windows gui测试工具:AutoIt
windows gui测试工具:AutoIt 2017-01-09 目录 1 简介2 示例1 记事本自动化操作3 示例2 上传文件 1 简介 返回 AutoIt v3 是用以编写并生成具有 BASIC ...
- WPF会重写Windows GUI的历史吗?
原文地址:http://tech.it168.com/zx/2007-09-15/200709141320653.shtml 你可能对微软的.NET框架3.0版本的最近的一次更新感到有点奇怪.主版本指 ...
- 开源自己用python封装的一个Windows GUI(UI Automation)自动化工具,支持MFC,Windows Forms,WPF,Metro,Qt
首先,大家可以看下这个链接 Windows GUI自动化测试技术的比较和展望 . 这篇文章介绍了Windows中GUI自动化的三种技术:Windows API, MSAA - Microsoft Ac ...
随机推荐
- zookeeper 简介
一.简介 zookeeper是hadoop的一个子项目,A distribute coordination service for distributed applications 为了分布式应用而开 ...
- Java中的受检异常
Java中的受检异常 Java提供了三种异常类型,受检异常(checked exception).运行时异常(runtime exception).错误(error).那么这受检异常在实际开发中又有什 ...
- Docker Registry搭建私有仓库
利用Registry镜像搭建Docker私有仓库遇到了很多坑,说来也是找到的资料都是杂而不精的东西,所以也没少走了弯路,现在回过头看去感觉好多坑还是别人给挖的··· 不过努力的最终结果还是好的,因为找 ...
- 软件工程day8
设计出一份demo.上报于组,等待修改意见. 色调为黑白灰,图像也很简洁,符合“快捷查询工具”的主题.
- 使用https的HSTS需要注意的一个问题
HSTS(HTTP Strict Transport Security) 简单来说就是由浏览器进行http向https的重定向.如果不使用HSTS,当用户在浏览器中输入网址时没有加https,浏览器会 ...
- Java设计模式6:策略模式
策略模式 策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立类中,从而使得它们可以相互替换.策略模式使得算法可以在不影响到客户端的情况下发生变化. 策略模式的结构 策略模式是对算法的包 ...
- Spring中Ordered接口简介
目录 前言 Ordered接口介绍 Ordered接口在Spring中的使用 总结 前言 Spring中提供了一个Ordered接口.Ordered接口,顾名思义,就是用来排序的. Spring是一个 ...
- angular controller as syntax vs scope
今天要和大家分享的是angular从1.2版本开始带来了新语法Controller as.再次之前我们对于angular在view上的绑定都必须使用直接的scope对象,对于controller来说我 ...
- Django集成百度富文本编辑器uEditor
UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码. 首先从ueEditor官网下载最新版本的包, ...
- AWS系列之二 使用EC2
在本文中我们有三个任务. 第一:使用Amazon management console创建一个EC2实例. 第二:使用本地的命令行工具远程登陆到该EC2实例. 第三:在该EC2实例上创建一个web服务 ...