自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

方亮的专栏

方亮的专栏

  • 博客(574)
  • 资源 (2)
  • 收藏
  • 关注

原创 Windows客户端C/C++编程规范“建议”——函数调用

本文涉及C++编程中函数调用相关规范的相关建议

2014-07-22 23:09:25 1876

原创 Windows客户端C/C++编程规范“建议”——指针

本文涉及C++编程中指针规范的相关建议

2014-07-22 23:06:53 2048

原创 Windows客户端C/C++编程规范“建议”——函数

本文涉及C++编程中函数规范的相关建议

2014-07-22 23:02:40 2825

原创 Windows客户端C/C++编程规范“建议”——前言

工作中接触了很多编程规范。其中最有意思的是,公司最近发布了一版C/C++编程规范,然后我看到该规范的最后一段时,有这么一句“该规范不适用于Windows平台开发”。心想:做Windows开发的人都干嘛去了。

2014-07-22 20:10:05 2155

原创 一种使用GDI+对图片尺寸和质量的压缩方法

该文介绍了两种图片压缩算法。这两种方法都是通过GDI+技术实现。其中一种是质量压缩:图片尺寸不变,质量降低,大小降低。另一种是尺寸压缩。该文介绍的两种方法对JPEG、bmp和PNG都有效。

2014-06-13 00:32:39 9123 5

原创 PE文件和COFF文件格式分析——导出表的应用——一种摘掉Inline钩子(Unhook)的方法

本文讲述如何使用导出表,还原inline hook。

2014-04-21 22:26:10 2817

原创 使用WinHttp接口实现HTTP协议Get、Post和文件上传功能

我实现了一个最新版本的接口,详见《实现HTTP协议Get、Post和文件上传功能——使用WinHttp接口实现》。还有基于libcurl实现的版本《实现HTTP协议Get、Post和文件上传功能——使用libcurl接口实现》。以下是原博文: 我们在做项目开发时,往往会涉及到和服务器通信。对于安全性要求不高的情况,一般我们采用HTTP通信协议。对于喜欢挑战底层技术...

2014-04-14 21:16:30 57688 47

原创 分析两种Dump(崩溃日志)文件生成的方法及比较

本文分析和讲解了两种截取dump的方法。一种是使用SetUnhandledExceptionFilter方法设置回调。一种是通过Hook函数UnhandledExceptionFilter实现。后一种方法可以截获前一种方法无法截获的异常,比如R6025:纯虚函数调用(pure virtual function call)。

2014-04-08 01:24:15 23243 2

原创 一种将快捷方式从开始菜单“常用应用”的中去除的方法

        当我们安装一款软件的时候,这款软件的一些快捷方式可能被设置到开始菜单的“常用应用”区域。但是,如果是“卸载”快捷方式被“钉”到该区域,就会造成非常不好的体验。毕竟把“卸载”接口暴露得如此醒目,如同把该款软件的地狱大门暴露出来。(转载请指明出于breaksoftware的csdn博客)        如下图,python就将卸载程序放到了“常用区域”。从而会导致windows会将...

2014-04-07 22:19:49 4332 2

原创 一种清除windows通知区域“僵尸”图标的方案——Windows7系统解决方案

Windows7下“僵尸”图标的解决方案        从《一种清除windows通知区域“僵尸”图标的方案——问题分析》(以后简称《问题分析》)一文中分析的通知区域结构可以看出,Windows7的通知区域比XP通知区域多出了一个“临时”系统通知区域(转载请指明出于breaksoftware的csdn博客)。我们通过GUID保证Windows7系统上图标的唯一性。

2013-12-09 01:05:13 3796 4

原创 一种清除windows通知区域“僵尸”图标的方案——XP系统解决方案

XP下“僵尸”图标的解决方案        从《一种清除windows通知区域“僵尸”图标的方案——问题分析》(以后简称《问题分析》)一文中分析的通知区域结构可以看出,XP的通知区域结构是相对简单的。如果我们解决了XP下的问题,那么Win7上的问题至少解决了一半——只有那个隐藏系统通知区域需要研究下。所以,我们先选择XP作为研究对象。(转载请指明出于breaksoftware的csdn博客)

2013-12-09 01:03:17 4942

原创 一种清除windows通知区域“僵尸”图标的方案——问题分析

本文主要讲述Windows通知区域的有趣的历史和结构,从而方便之后解决“僵尸”图标问题。

2013-12-09 01:01:44 9894 4

原创 一种准标准CSV格式的介绍和分析以及解析算法

CSV是一种古老的数据传输格式,它的全称是Comma-Separated Values(逗号分隔值)。出生在那个标准缺失的蛮荒年代,CSV的标准一直(到2005年)是NULL——世间存在着N种CSV格式,它们自成体系,相互不兼容。比如我们从名字可以认为CSV至少是一种使用逗号分隔的格式,但是实际上,有的CSV格式却是使用分号(;)去做分隔。假如,不存在一种标准,那么这东西最终会因为碎片化而发展缓慢

2013-12-04 19:43:02 17780 9

原创 一种解决启动进程传递参数过长的方法

        工作中,QA同学在测试我们程序的时候,发现在XP下,我们的A进程无法启动我们的B进程。而在Win7 64bit系统下功能正常。RD同学调试后,发现我们A进程中使用ShellExcute去启动了B进程(转载请指明出于breaksoftware的csdn博客)HINSTANCE ShellExecute( _In_opt_ HWND hwnd, _In_opt_ LP...

2013-10-31 23:58:28 3596

原创 "打开,保存"文件框的文本溢出排查

解决工作中遇到的一个"打开,保存"文件框的bug的过程

2013-10-31 23:58:16 2133

原创 使用windbg抓取崩溃文件和分析的过程

我们身边的很多软件都引入了dump生成和收集机制。但是一般情况下,它们都是生成minidump。因为minidump文件相对来说很小,方面我们收集上来进行分析。但是Minidump保存了很少的信息,在一些场景下,可能不能协助我们准确快速定位问题。

2013-10-31 23:58:02 17803 2

原创 一个分析“文件夹”选择框实现方法的过程

在软件开发中,我们如果存在“导入导出”的场景时,难免会用到“文件夹”选择框。之前一直没有太关注过这个的实现过程。最近在工作中遇到了一些问题,我做了一些研究。在此记录下研究的过程。

2013-10-31 23:57:40 4913 1

原创 发现一个windows7(32bit或64bit)DirectUI的bug

前段时间发现一个windows7的一个bug,不是什么严重的问题,我在此记录下。(转载请指明出于breaksoftware的csdn博客)        重现步骤如下:        0 在文件夹的“更改您的视图”中选择下图中用红色叉叉标记的项        1 新建一个文件夹名为“Cs"         2 选中Cs文件夹,按F2,或者右击选“重命名”,或者慢双击

2013-04-23 17:54:44 2587

原创 WMI技术介绍和应用——查询硬件信息

这个月实在太忙了,一直没有时间去继续写WMI的应用例子。 本来是希望将《WMI技术介绍和应用》系列博文写的像WMI百科全书般,但是貌似对这个技术感兴趣的同学并不多,所以我决定对部分知识点点到为止,有需求的同学可以查询MSDN相关类的说明即可。本文将罗列一些可能使用到的一些知识点。如果你发现你期望查询的硬件信息在本文中没有写出来,请参看MSDN的《Computer System Hardware

2013-04-18 22:50:59 10859 19

原创 使用程序解决一道逻辑推理题

今天看朋友发了一个老问题,一道很有意思的推理题:(转载请指明出于breaksoftware的csdn博客)        小明和小强都是张老师的学生,张老师的生日是M月N日,2人都知道张老师的生日是下列10组中的一天:        3月4日 3月5日 3月8日        6月4日 6月7日        9月1日 9月5日        12月1日 12月2日 12月8日

2013-03-14 20:55:20 5241 2

原创 以金山界面库(openkui)为例思考和分析界面库的设计和实现——资源读取模块分析

按照软件的执行流程,我们首先遇到《以金山界面库(openkui)为例思考和分析界面库的设计和实现——问题》中提出的最后一个问题:界面描述文件的放置位置。我们曾提出一种方案:将界面描述文件打包后放在资源文件中;在使用时,解析并读取资源文件。实际上Kui也是按照我们这个思路在做的,只是做得比我们要精巧。在阅读这部分代码的过程中,我发现其存在一定的编码缺陷以及设计缺陷。我会在文中适时指出问题并提出修正及

2013-03-12 22:19:10 5584 2

原创 以金山界面库(openkui)为例思考和分析界面库的设计和实现——问题

随着物质生活的丰富,人们的精神生活也越来越丰富。人们闲暇的时间也相对变多,于是很多人就开始寻找打发时间的方法。其中电视便是其中一种非常重要的消遣方式。假如我们打开电视机,看到了一个电视台正在播一部我们之前没看过的,正在一招一式进行打斗的武侠片;另一个电视台正在播一部之前也没看过的,正在重复太极推手的教学片。我想大部分人会选择那部武侠片。为什么?因为那是一个动作体系,不会让人厌烦。而那个推手教学片,

2013-03-08 23:47:16 7641

原创 WMI技术介绍和应用——查询本地用户和组

本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客)        本文主要介绍Win32_Group和Win32_UserAccount类。        如何使用WMI枚举所有的组内账户信息?SELECT * FROM Win32

2013-03-07 20:20:57 7523 4

原创 如何在父进程中读取子(外部)进程的标准输出和标准错误输出结果

最近接手一个小项目,要求使用谷歌的aapt.exe获取apk软件包中的信息。依稀记得去年年中时,有个同事也问过我如何获取被调用进程的输出结果,当时还研究了一番,只是没有做整理。今天花点时间,将该方法整理成文。(转载请指明出于breaksoftware的csdn博客)        在信息化非常发达的今天,可能已经过了江湖“武侠”草莽的时代。仅凭一己之力想完成惊人的创举,可谓难上加难。于是社会分

2013-02-20 20:31:28 11712

原创 WMI技术介绍和应用——查询系统服务

本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客)        本文主要介绍Win32_Service类。        如何使用WMI枚举系统中的服务?SELECT * FROM Win32_Service        我们以

2013-02-14 21:51:17 3244

原创 WMI技术介绍和应用——查询时间信息

本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客)        本文主要介绍Win32_LocalTime和Win32_UTCTime。        如何使用WMI获取本地时间?SELECT Year,Month,Day,Hour,

2013-02-12 17:04:26 3039

原创 WMI技术介绍和应用——查询系统信息和补丁包信息

本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客)        本文主要知识点是Win32_OperatingSystem和Win32_QuickFixEngineering类。通过该类我们将可以获取部分系统设置。        如何使用

2013-02-06 18:30:57 14599 6

原创 WMI技术介绍和应用——查询系统信息

        本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客)        本机主要知识点是Win32_ComputerSystem类。通过该类我们将可以获取部分系统设置。        如何使用WMI查询是否开启了系统硬件安全设置密...

2013-02-05 18:07:34 11430 2

原创 WMI技术介绍和应用——查询快捷方式、映射磁盘和虚拟内存信息

本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客)        因为将要介绍的三个模块都比较简单,故将这三者合并在一起介绍。查询快捷方式信息是使用Win32_ShortcutFile类;查询映射磁盘信息是使用Win32_MappedLogic

2013-02-04 18:33:39 4623 2

原创 如何定制一款12306抢票浏览器——完结篇

        差不多花了一个星期的业余时间去完成了相关的编码。最后也只是使用了5篇文章将整个大题流程和使用的关键技术介绍了一下。其中有很多酸甜苦辣,其中记忆最为深刻的就是我对图像做了处理后,tesseract-ocr对验证码识别的准确度提升非常大。当我还沉浸子在这片喜悦之中时,12306将验证码生成规则改了,使得我前功尽弃。我是希望能在购买返程票之前将此软件完成,可是出于种种原因我已无心将其做完...

2013-01-29 01:53:29 6755 13

原创 如何定制一款12306抢票浏览器——处理预订页面和验证码自动识别功能

判断是否进入预订页面        我们先看一下预订页面的结构(转载请指明出于breaksoftware的csdn博客)        可以见得,这个页面也是嵌入了两个IFrame。关于IFrame的跨域问题,我已经在前一篇文章中讲述了解决办法。        我判断是否是预订页面是通过两个依据:        1 URL是否是http://www.12306.cn/mor

2013-01-29 01:33:46 16120 4

原创 如何定制一款12306抢票浏览器——实现自动查询和预订功能

检查是否进入订票页面        判断是否进入订票页面,我是确定了两个标准:(转载请指明出于breaksoftware的csdn博客)        1 网址是否为http://www.12306.cn/mormhweb/kyfw/        2 该页面否有查询按钮BOOL CDeal12306WebPage::IsQueryPage( CComPtr & spDoc,

2013-01-28 23:20:39 5635 2

原创 如何定制一款12306抢票浏览器——启动“人”线程

        启动“人”线程        在《如何定制一款12306抢票浏览器——构架》一文中,我们提到“人”线程。对于熟悉Window编程的同学来说,线程间通信和信息传递不是难题。但是由于浏览器和我们“人”线程之间传递的是COM对象,这个过程就没有那么简单了。(转载请指明出于breaksoftware的csdn博客)        首先我们要明确下传递的到底是什么COM对象。一般来说...

2013-01-28 02:26:05 3649

原创 如何定制一款12306抢票浏览器——用户界面

        用户界面        我不打算写个Windows界面。因为这个软件的全部就是个浏览器。我准备将”浏览器“进行到底,所以我选择使用html作为我们的用户界面。我也并不打算从头开始写一个浏览器,我使用了《内嵌IE网页窗口中消除IE默认脚本设置影响的方法》中基于WTL的浏览器代码。(转载请指明出于breaksoftware的csdn博客)界面如下         我观察了下...

2013-01-28 02:25:23 5860 7

原创 如何定制一款12306抢票浏览器——构架

快春节了,火车票一票难求。虽然黄牛市场冷淡了,但是互联网“娱乐界”却越来越闹腾了。先是猎豹等浏览器推出抢票专版(插件),然后是铁道部约谈金山,之后流传工信部叫停抢票插件,之后再是工信部出面否认,最后金山某某人在视频上鄙视了一下铁道部:称愿意提供技术支持……(转载请指明出于breaksoftware的csdn博客)        我也是抢票大军中的一员。记得上个周六,我早早的爬了起来抢票,结果看

2013-01-28 02:25:04 5533

原创 WMI技术介绍和应用——查询磁盘分区和逻辑磁盘信息

        本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客)        本节主要介绍Win32_DiskPartition和Win32_LogicalDisk两个类的应用。Win32_DiskPartition用于查询磁盘分区信息,W...

2013-01-15 21:21:29 17620 4

原创 WMI技术介绍和应用——查询文件夹信息

        本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。        本节主要介绍Win32_Directory类。通过该类我们将可以获得部分常用的文件夹信息。在该类中,有属性Name,该属性标志文件的路径。由于尝试枚举文件夹是非常耗时的。本文将介绍如何获取指定文件夹的信息。(转载请指明出...

2013-01-11 20:08:19 6553 2

原创 WMI技术介绍和应用——查询驱动信息

本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。        如何使用WMI查询所有驱动信息?(转载请指明出于breaksoftware的csdn博客) CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT * FROM Win32_SystemDriver" ); recvnot

2013-01-09 20:28:20 6968

原创 WMI技术介绍和应用——查询环境变量

本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。        我们可以通过系统属性查看当前系统和当前用户的环境变量。(转载请指明出于breaksoftware的csdn博客)        如何使用WMI枚举所有环境变量的信息? CSynQueryData recvnotify(L"root\\CIMV2",L"SELE

2013-01-09 19:22:39 3575

原创 WMI技术介绍和应用——查询桌面信息

        本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。        在Windows操作系统中,存在很多Windows Station。而每一个Windows Station又存在一个或者多个Windows Desktop。我们一般所说的桌面只是这些众多桌面中的一个。以下内容将介绍如何使用WMI查询桌面的相关信息。(转载请指明出于bre...

2013-01-08 19:53:36 4967 20

LuaCmdTest

我用于测试的一个lua脚本,没啥用,不用下载。

2012-11-27

同步双工管道

http://blog.csdn.net/breaksoftware/article/details/7001672文中的工程

2011-11-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除