windows desktop
Windows内存小结      摘要: 虚拟内存, 物理内存,工作集, 页文件, 堆栈,堆  阅读全文
posted @ 2016-04-07 21:45 Richard Wei 阅读(3262) | 评论 (1)  编辑
Windows系统机制笔记      摘要: System Mechanisms(interrupt, kernel object, synchronization)  阅读全文
posted @ 2016-03-22 22:48 Richard Wei 阅读(2133) | 评论 (1)  编辑
GDI VS Dxgi      摘要: Win10, WinRT, Dxgi  阅读全文
posted @ 2016-03-16 22:09 Richard Wei 阅读(3742) | 评论 (1)  编辑
Windows进程笔记      摘要: Windows进程结构  阅读全文
posted @ 2016-03-16 22:03 Richard Wei 阅读(2602) | 评论 (0)  编辑
深入解析结构化异常处理(SEH)      摘要: 告诉你Windows结构化异常处理(SEH)技术的台前幕后...  阅读全文
posted @ 2015-02-27 21:40 Richard Wei 阅读(16396) | 评论 (0)  编辑
如何给开源的DUILib支持Accessibility      摘要: 尽管我N次吐槽基于GDI的DirectUI界面库会随着XP的淡出而逐渐失去市场, 但是实际工作中还是要经常和GDI打交道,外面招聘单位还是有不少Windows客户端的开发岗位。 在这"移动互联和"Web前端"横行的"大数据"时代,很多同事开始向移动App和大数据转型, 尽管这几年PC客户端的开发人员是只出不进, 但是只要Windows存在一天,我们的工作就还是有价值的..
  阅读全文
posted @ 2014-11-15 00:01 Richard Wei 阅读(8175) | 评论 (7)  编辑
如何在桌面上透明的绘画      摘要: 桌面透明标注和绘画实现原理  阅读全文
posted @ 2014-09-22 23:10 Richard Wei 阅读(6288) | 评论 (3)  编辑
如何检测资源泄露      摘要: Window上我们常见的资源泄露包括内存和对象句柄泄露, 下面讨论下对各类泄露的检测方法。
  阅读全文
posted @ 2014-08-27 22:37 Richard Wei 阅读(3740) | 评论 (0)  编辑
如何基于纯GDI实现alpha通道的矢量和文字绘制      摘要: 一个基本的图形引擎要包括几个方面的支持:位图绘制,文字绘制,矢量绘制(如矩形,线条)。
可惜GDI这个20多年前发明的老古董,对这几项的绘制, 除了位图绘制可以通过AlphaBlend支持alpha通道,其他绘制都不支持alpha通道。
  阅读全文
posted @ 2014-08-26 00:22 Richard Wei 阅读(5148) | 评论 (3)  编辑
如何抓取扬声器的声音      摘要: 工作中有个需求是关于抓取扬声器的声音, 为什么会有这个需求?
试想我们在共享远程桌面时,如果能够把本地桌面应用程序的声音也一起发给对方, 用户体验该是多么棒。
  阅读全文
posted @ 2014-08-21 23:34 Richard Wei 阅读(14581) | 评论 (5)  编辑
如何将Icon转成Bitmap      摘要: 最近工作中有个需求是将Icon转成带Alpha通道的Bitmap, 虽然网上有不少这方面的文章,但很多都是错的, 这里记录下,或许对后来人有用  阅读全文
posted @ 2014-08-21 22:23 Richard Wei 阅读(4922) | 评论 (0)  编辑
一个exe可执行文件的生与死(运行原理)(转载)      摘要: 本文讲的的Windows 环境下exe可执行文件的运行原理,这里面涉及的知识很多,需要读者对Windows操作系统(如注册表、进程、线程、内存管理、PE文件格式等)、Windows编程(本文使用c++语言)等有所了解。  阅读全文
posted @ 2014-04-05 11:48 Richard Wei 阅读(2357) | 评论 (0)  编辑
从点击Button到弹出一个MessageBox, 背后发生了什么      摘要: 简单总结下,操作系统通过一层层的封装,隐藏了太多的东西, 很多看似简单的行为, 实际上背后都有很复杂层层调用。理解这些原理,可以让你的知识达到一定的深度,帮助你更好的解决问题。
  阅读全文
posted @ 2014-04-05 00:57 Richard Wei 阅读(5203) | 评论 (2)  编辑
关于Windows高DPI的一些简单总结      摘要: 如果说以前XP时代我们还有理由不关注高DPI, 那么在移动设备时代和大显示器的高分辨率时代, 我们就没有理由不关注高DPI了, 比如Surface Pro的分辨率是1920x1080, 这种情况下如果系统我们不设置高DPI, 基本上就没法触摸和操作了,所以现在普通程序对高DPI的支持已经成为趋势了。
  阅读全文
posted @ 2014-02-18 23:12 Richard Wei 阅读(41349) | 评论 (10)  编辑
Window Ghosting      摘要: 在XP时代我们的程序没有响应后只能通过任务管理器强制杀掉,但是Vista之后情况变了, 我们仍然可以拖动失去响应的窗口,甚至可以尝试最小化和关闭窗口, 我们把这个特性叫住Window Ghosting。
  阅读全文
posted @ 2014-01-08 21:26 Richard Wei 阅读(3184) | 评论 (3)  编辑
Windows桌面共享中一些常见的抓屏技术      摘要: 最后简单总结下 , 我们可以看到Windows系统上基本没有一种通用的抓屏技术可以高效的抓取所有的系统(XP/Win7/Win8), 很大一部原因是操作系统的显示驱动模型在从XPDM向WDDM转变, 应用层的API也在从GDI向D3D转变 。 相对于Linux的稳定, Window的不断发展和进步, 对开发人员究竟是喜是悲?  阅读全文
posted @ 2013-12-01 22:04 Richard Wei 阅读(37945) | 评论 (16)  编辑
HOOK技术的一些简单总结      摘要: 探讨各种Hook技术: SetWindowsHookEx, SetWinEventHook, API Hook, COM Hook  阅读全文
posted @ 2013-10-30 11:03 Richard Wei 阅读(29766) | 评论 (13)  编辑
关于Windows窗口框架      摘要: 我们知道Windows的窗口消息处理函数是C方式, 面向过程的, 所以窗口框架的基本任务就是将它转成面向对象的方式, 确切的说如何将消息处理函数第一参数HWND转成对象指针。  阅读全文
posted @ 2013-09-08 14:47 Richard Wei 阅读(4282) | 评论 (11)  编辑
如何获取桌面截图      摘要: 最近工作 中有个需求是抓取桌面截图, 这里的桌面是指点了“显示桌面”之后看到的桌面, 截图内容包括桌面背景和图标以及任务栏  阅读全文
posted @ 2013-08-30 20:30 Richard Wei 阅读(7808) | 评论 (2)  编辑
浅析Windows安全相关的一些概念      摘要: 记录一些Windows 安全相关的概念, 分享自己对Windows安全机制的一些理解。  阅读全文
posted @ 2013-08-25 07:58 Richard Wei 阅读(10845) | 评论 (3)  编辑
DirectUI中模态对话框和菜单的原理      摘要: Windows的API封装了太多细节, 尽管大部分时候我们只要知道如何使用它们,而不用关心它们的内部如何实现。 但是当你写一些相对底层的东西,比如开发自己的DirectUI界面库时, 还是需要真正理解某些API的内部实现原理,才能继续深入下去  阅读全文
posted @ 2013-04-07 22:19 Richard Wei 阅读(5081) | 评论 (10)  编辑
Rootkit技术发展史(转载)      摘要: “SSDT”(System Service Descriptor Table,系统服务描述符表) Inline Hook FSD”(File System Driver,文件系统驱动)  阅读全文
posted @ 2013-01-12 22:32 Richard Wei 阅读(1408) | 评论 (0)  编辑
理解Windows内核模式与用户模式      摘要: windows程序运行分为内核模式和用户模式,内核模式可以访问所有的内存地址空间, 并且可以访问所有的CPU指令。一般程序运行在用户模式, 通过系统调用切换到内核模式执行系统功能,Windows系统通过这种方式来确保系统的安全和稳定。  阅读全文
posted @ 2013-01-12 22:03 Richard Wei 阅读(8496) | 评论 (0)  编辑
如何让窗口控件半透明      摘要: 在网上关于窗口视觉效果,有2个问题被问得最多:
第一个是如何让窗口边框有阴影效果?
第二个是如何让窗口控件有半透明效果?
  阅读全文
posted @ 2012-08-23 00:38 Richard Wei 阅读(7162) | 评论 (4)  编辑
软件换肤的原理      摘要: 总的来说DirectUI是趋势,而微软的WPF代表了DirectUI最先进的技术方向,换肤对于DirectUI来说非常容易。随着Win7,Win8 的普及,传统界面库的市场会越来越小,一来因为系统本身已经很炫了,二来微软自己的WPF和Xaml技术基本上已经可以实现任何想要的效果。当然只要XP不消亡,传统的界面库还是有自己的一席之地。  阅读全文
posted @ 2012-08-21 22:33 Richard Wei 阅读(5932) | 评论 (2)  编辑
共享个人写的一个截屏小工具      摘要: 主要特性:
(1)软件小而高效,使用流畅,设计人性化
(2)支持截图区域的手工选择和根据窗口自动识别选择
(3)支持矩形,圆形,直线,箭头,画笔,文本等注释工具
(4)支持橡皮擦除功能
(5)无限次数的撤销和重做
(6)支持鼠标光标的截取
(7)支持鼠标区域跟踪和放大
(8)支持各种图像文件格式的保存和编辑
(9)支持多显示器
(10)支持换肤和多语言  阅读全文
posted @ 2012-08-21 00:02 Richard Wei 阅读(7038) | 评论 (19)  编辑
如何学习Windows编程      摘要: 经常有初学者询问如何学习Windows编程?

很多人从MFC开始学习,结果常常是一头雾水,知难而退;也有人毅力坚强,熬过了MFC的阵痛期,最后却是知其然而不知其所以然,并且思维被限制在MFC的框架之中,遇到稍微有点规模的程序就无从下手了。  阅读全文
posted @ 2012-08-15 13:37 Richard Wei 阅读(7488) | 评论 (5)  编辑
如何减小Exe, DLL 的大小      摘要: 运行库,数据节, 代码节  阅读全文
posted @ 2012-07-07 15:17 Richard Wei 阅读(5166) | 评论 (1)  编辑
远程线程入门      摘要: 远程线程作为一项"合法"的代码注入技术,在windows上被大量使用, 它的本质就是把一块可执行代码写入到对方进程,然后让其起运行。
一般它的实现过程是这样的, 通过VirtualAllocEx在目标进程分配内存空间,然后通过WriteProcessMemory将我们的可执行代码写入到目标进程,最后通过CreateRemoteThread让我们的可执行代码在目标进称里运行起来。  阅读全文
posted @ 2012-06-20 15:38 Richard Wei 阅读(3900) | 评论 (5)  编辑
Sessions, Window Stations and Desktops      摘要: widnows下多用户多桌面的原理  阅读全文
posted @ 2012-05-12 23:37 Richard Wei 阅读(4251) | 评论 (0)  编辑
QQ截图时窗口自动识别的原理      摘要: 新版的QQ在截图时加入了窗口自动识别的功能,能根据鼠标的位置自动画出下面窗口的轮廓。今天有人在论坛上问起这个问题,下面我们来探讨这个功能的实现原理。  阅读全文
posted @ 2012-05-06 21:34 Richard Wei 阅读(11890) | 评论 (9)  编辑
桌面上嵌入窗口(桌面日历)原理探索      摘要: 今天在QQ群里有人问怎样实现将自己的窗口嵌入桌面,让它和桌面融为一体,就像很多桌面日历软件那样。  阅读全文
posted @ 2012-05-03 22:07 Richard Wei 阅读(8434) | 评论 (8)  编辑